{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\rujjn\\Anaconda3\\envs\\capstone2\\lib\\site-packages\\gensim\\utils.py:1197: UserWarning: detected Windows; aliasing chunkize to chunkize_serial\n",
      "  warnings.warn(\"detected Windows; aliasing chunkize to chunkize_serial\")\n",
      "C:\\Users\\rujjn\\Anaconda3\\envs\\capstone2\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n",
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numpy version: 1.14.3\n",
      "Pandas version: 0.23.4\n",
      "Seaborn version: 0.8.1\n"
     ]
    }
   ],
   "source": [
    "# Import necessary modules\n",
    "\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import string\n",
    "import re\n",
    "\n",
    "from sklearn.preprocessing import MinMaxScaler, OneHotEncoder, StandardScaler, RobustScaler\n",
    "from sklearn.model_selection import cross_val_score, KFold\n",
    "\n",
    "from gensim.models.word2vec import Word2Vec\n",
    "\n",
    "# from sklearn.feature_extraction.stop_words import ENGLISH_STOP_WORDS as stopwords\n",
    "from nltk.corpus import stopwords\n",
    "import language_check\n",
    "import spacy\n",
    "\n",
    "from sklearn.model_selection import train_test_split, KFold\n",
    "\n",
    "from skll.metrics import kappa\n",
    "from bhkappa import mean_quadratic_weighted_kappa\n",
    "\n",
    "from scipy.sparse import csr_matrix\n",
    "\n",
    "from keras.models import Sequential, Model\n",
    "from keras.layers import Dense, Dropout, Input, LSTM, Embedding, Bidirectional, Flatten\n",
    "from keras.layers import Conv1D, MaxPooling1D, GlobalMaxPooling1D\n",
    "from keras.optimizers import SGD, Adam\n",
    "from keras.wrappers.scikit_learn import KerasRegressor\n",
    "\n",
    "nlp = spacy.load('en')\n",
    "\n",
    "stopwords = stopwords.words('english')\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "print('Numpy version:', np.__version__)\n",
    "print('Pandas version:', pd.__version__)\n",
    "print('Seaborn version:', sns.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Process Overview (Recap)\n",
    "\n",
    "### Apply grammar and spelling corrections\n",
    "\n",
    "Feature importances generated from the extra trees algorithm did not rank grammar and spelling errors highly, suggesting that perhaps the essays could be processed \"as is\". On the other hand, word embeddings rely on known words and many usage examples. Misspelled words will either be ignored if their count is below the minimum, or worse, if misspelled to an existing word with a different meaning, the vectors could change the performance of the model in a way that might not be useful. LanguageTool will be used for applying these corrections.\n",
    "\n",
    "### Clean essays\n",
    "\n",
    "Remove less helpful parts of essay texts, i.e. punctuation, pronouns and capital letters and return lemma to be processed into word embeddings. SpaCy is a simple and efficient tool for this task.\n",
    "\n",
    "### Generate word embeddings\n",
    "\n",
    "SpaCy could also be used to generate word embeddings, however its simple 'en' language model is trained on a corpus that is very different from school essays. It also uses context sensitive tensors which don't provide specific word vectors. \n",
    "\n",
    "Instead, Gensim's Word2Vec will be used to generate a model based on the all available essays, not only from the \"training_set\" which includes target scores, but also from the \"validation\" and \"test\" sets which are otherwise not useful. Finally, cleaned essays of the \"training_set\" will be passed into the word model to generate averaged 300-dimensional word vectors.\n",
    "\n",
    "### Prepare inputs\n",
    "\n",
    "There are eight topics which each have a different scale for scoring. To deal with this there are several possible approaches. First, each topic could be processed individually and the resultant kappa scores would be averaged. This approach is useful if certain features are particularly useful for grading a specific topic. On the other hand, fewer essays mean fewer examples to learn from. \n",
    "\n",
    "An alternate approach is to combine all topics by scaling the scores with a min-max scaler to a common range, e.g. 0-60. This approach increases the number of examples nearly 8-fold. \n",
    "\n",
    "### Classification or regression?\n",
    "\n",
    "Automatic scoring can now be thought of as either a classification or a regression problem. For classification the target variable needs to be one-hot encoded to the range of unique target scores and the output layer of the neural network also needs to have the same dimension. For regression, the target variable and output layer have a single dimension. Where the classification results are approximated or rounded through `softmax` activation and again when reversing the min-max scaling, the regression results are only rounded after scaling. This might be the reason regression performs slightly better on this data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def correct_language(df):\n",
    "    \"\"\"\n",
    "    use language tool to correct for most spelling and grammatical errors. Also count the applied corrections. \n",
    "    Using language_check python wrapper for languagetool:\n",
    "    https://www.languagetool.org/dev\n",
    "    \"\"\"\n",
    "    tool = language_check.LanguageTool('en-US')\n",
    "\n",
    "    df['matches'] = df['essay'].apply(lambda txt: tool.check(txt))\n",
    "    df['corrections'] = df.apply(lambda l: len(l['matches']), axis=1)\n",
    "    df['corrected'] = df.apply(lambda l: language_check.correct(l['essay'], l['matches']), axis=1)\n",
    "      \n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>essay_id</th>\n",
       "      <th>topic</th>\n",
       "      <th>essay</th>\n",
       "      <th>rater1_domain1</th>\n",
       "      <th>rater2_domain1</th>\n",
       "      <th>rater3_domain1</th>\n",
       "      <th>target_score</th>\n",
       "      <th>rater1_domain2</th>\n",
       "      <th>rater2_domain2</th>\n",
       "      <th>topic2_target</th>\n",
       "      <th>...</th>\n",
       "      <th>rater2_trait6</th>\n",
       "      <th>rater3_trait1</th>\n",
       "      <th>rater3_trait2</th>\n",
       "      <th>rater3_trait3</th>\n",
       "      <th>rater3_trait4</th>\n",
       "      <th>rater3_trait5</th>\n",
       "      <th>rater3_trait6</th>\n",
       "      <th>matches</th>\n",
       "      <th>corrections</th>\n",
       "      <th>corrected</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Dear local newspaper, I think effects computer...</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[Line 1, column 219, Rule ID: MORFOLOGIK_RULE_...</td>\n",
       "      <td>11</td>\n",
       "      <td>Dear local newspaper, I think effects computer...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>Dear @CAPS1 @CAPS2, I believe that using compu...</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[Line 1, column 149, Rule ID: MORFOLOGIK_RULE_...</td>\n",
       "      <td>19</td>\n",
       "      <td>Dear @CAPS1 @CAPS2, I believe that using compu...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Dear, @CAPS1 @CAPS2 @CAPS3 More and more peopl...</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[Line 1, column 316, Rule ID: MORFOLOGIK_RULE_...</td>\n",
       "      <td>9</td>\n",
       "      <td>Dear, @CAPS1 @CAPS2 @CAPS3 More and more peopl...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>Dear Local Newspaper, @CAPS1 I have found that...</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[Line 1, column 87, Rule ID: MORFOLOGIK_RULE_E...</td>\n",
       "      <td>35</td>\n",
       "      <td>Dear Local Newspaper, @CAPS1 I have found that...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>Dear @LOCATION1, I know having computers has a...</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[Line 1, column 178, Rule ID: MORFOLOGIK_RULE_...</td>\n",
       "      <td>17</td>\n",
       "      <td>Dear @LOCATION1, I know having computers has a...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   essay_id  topic                                              essay  \\\n",
       "0         1      1  Dear local newspaper, I think effects computer...   \n",
       "1         2      1  Dear @CAPS1 @CAPS2, I believe that using compu...   \n",
       "2         3      1  Dear, @CAPS1 @CAPS2 @CAPS3 More and more peopl...   \n",
       "3         4      1  Dear Local Newspaper, @CAPS1 I have found that...   \n",
       "4         5      1  Dear @LOCATION1, I know having computers has a...   \n",
       "\n",
       "   rater1_domain1  rater2_domain1  rater3_domain1  target_score  \\\n",
       "0               4               4             NaN             8   \n",
       "1               5               4             NaN             9   \n",
       "2               4               3             NaN             7   \n",
       "3               5               5             NaN            10   \n",
       "4               4               4             NaN             8   \n",
       "\n",
       "   rater1_domain2  rater2_domain2  topic2_target  \\\n",
       "0             NaN             NaN            NaN   \n",
       "1             NaN             NaN            NaN   \n",
       "2             NaN             NaN            NaN   \n",
       "3             NaN             NaN            NaN   \n",
       "4             NaN             NaN            NaN   \n",
       "\n",
       "                         ...                          rater2_trait6  \\\n",
       "0                        ...                                    NaN   \n",
       "1                        ...                                    NaN   \n",
       "2                        ...                                    NaN   \n",
       "3                        ...                                    NaN   \n",
       "4                        ...                                    NaN   \n",
       "\n",
       "   rater3_trait1  rater3_trait2  rater3_trait3  rater3_trait4  rater3_trait5  \\\n",
       "0            NaN            NaN            NaN            NaN            NaN   \n",
       "1            NaN            NaN            NaN            NaN            NaN   \n",
       "2            NaN            NaN            NaN            NaN            NaN   \n",
       "3            NaN            NaN            NaN            NaN            NaN   \n",
       "4            NaN            NaN            NaN            NaN            NaN   \n",
       "\n",
       "   rater3_trait6                                            matches  \\\n",
       "0            NaN  [Line 1, column 219, Rule ID: MORFOLOGIK_RULE_...   \n",
       "1            NaN  [Line 1, column 149, Rule ID: MORFOLOGIK_RULE_...   \n",
       "2            NaN  [Line 1, column 316, Rule ID: MORFOLOGIK_RULE_...   \n",
       "3            NaN  [Line 1, column 87, Rule ID: MORFOLOGIK_RULE_E...   \n",
       "4            NaN  [Line 1, column 178, Rule ID: MORFOLOGIK_RULE_...   \n",
       "\n",
       "   corrections                                          corrected  \n",
       "0           11  Dear local newspaper, I think effects computer...  \n",
       "1           19  Dear @CAPS1 @CAPS2, I believe that using compu...  \n",
       "2            9  Dear, @CAPS1 @CAPS2 @CAPS3 More and more peopl...  \n",
       "3           35  Dear Local Newspaper, @CAPS1 I have found that...  \n",
       "4           17  Dear @LOCATION1, I know having computers has a...  \n",
       "\n",
       "[5 rows x 31 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# read essays from training_set\n",
    "training_set  = pd.read_csv('training_set_rel3.tsv', sep='\\t', encoding = \"ISO-8859-1\")\\\n",
    "            .rename(columns={'essay_set': 'topic', 'domain1_score': 'target_score', 'domain2_score': 'topic2_target'})\n",
    "\n",
    "# apply spelling and grammar corrections\n",
    "training_set = correct_language(training_set)\n",
    "\n",
    "training_set.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# read essays from validation and test sets\n",
    "\n",
    "valid_set  = pd.read_csv('valid_set.tsv', sep='\\t', encoding = \"ISO-8859-1\")\\\n",
    "            .rename(columns={'essay_set': 'topic'})\n",
    "test_set  = pd.read_csv('test_set.tsv', sep='\\t', encoding = \"ISO-8859-1\")\\\n",
    "            .rename(columns={'essay_set': 'topic'})\n",
    "\n",
    "combo_set = pd.concat([valid_set, test_set], sort=False)\n",
    "\n",
    "# apply spelling and grammar corrections\n",
    "combo_set = correct_language(combo_set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "combo_set = pd.concat([combo_set, training_set], sort=False)\n",
    "combo_set.to_pickle('combo_set.pkl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "21448"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(combo_set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# skip if using language tool above\n",
    "# training_set = pd.read_pickle('training_features.pkl')\n",
    "# combo_set = pd.read_pickle('combo_set.pkl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Generate word embeddings with Word2Vec"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Clean training_set essays before feeding them to the Word2Vec model.\n",
    "punctuations = string.punctuation\n",
    "\n",
    "# Define function to cleanup text by removing personal pronouns, stopwords, and puncuation\n",
    "def cleanup_essays(essays, logging=False):\n",
    "    texts = []\n",
    "    counter = 1\n",
    "    for essay in essays.corrected:\n",
    "        if counter % 2000 == 0 and logging:\n",
    "            print(\"Processed %d out of %d documents.\" % (counter, len(essays)))\n",
    "        counter += 1\n",
    "        essay = nlp(essay, disable=['parser', 'ner'])\n",
    "        tokens = [tok.lemma_.lower().strip() for tok in essay if tok.lemma_ != '-PRON-']\n",
    "        tokens = [tok for tok in tokens if tok not in stopwords and tok not in punctuations]\n",
    "        tokens = ' '.join(tokens)\n",
    "        texts.append(tokens)\n",
    "    return pd.Series(texts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original training data shape:  (12976,)\n",
      "Processed 2000 out of 12976 documents.\n",
      "Processed 4000 out of 12976 documents.\n",
      "Processed 6000 out of 12976 documents.\n",
      "Processed 8000 out of 12976 documents.\n",
      "Processed 10000 out of 12976 documents.\n",
      "Processed 12000 out of 12976 documents.\n",
      "Cleaned up training data shape:  (12976,)\n"
     ]
    }
   ],
   "source": [
    "# Cleanup text and make sure it retains original shape\n",
    "print('Original training data shape: ', training_set['corrected'].shape)\n",
    "train_cleaned = cleanup_essays(training_set, logging=True)\n",
    "print('Cleaned up training data shape: ', train_cleaned.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define function to preprocess text for a word2vec model\n",
    "def cleanup_essay_word2vec(essays, logging=False):\n",
    "    sentences = []\n",
    "    counter = 1\n",
    "    for essay in essays:\n",
    "        if counter % 2000 == 0 and logging:\n",
    "            print(\"Processed %d out of %d documents\" % (counter, len(essays)))\n",
    "        # Disable tagger so that lemma_ of personal pronouns (I, me, etc) don't getted marked as \"-PRON-\"\n",
    "        essay = nlp(essay, disable=['tagger'])\n",
    "        # Grab lemmatized form of words and make lowercase\n",
    "        essay = \" \".join([tok.lemma_.lower() for tok in essay])\n",
    "        # Split into sentences based on punctuation\n",
    "        essay = re.split(\"[\\.?!;] \", essay)\n",
    "        # Remove commas, periods, and other punctuation (mostly commas)\n",
    "        essay = [re.sub(\"[\\.,;:!?]\", \"\", sent) for sent in essay]\n",
    "        # Split into words\n",
    "        essay = [sent.split() for sent in essay]\n",
    "        sentences += essay\n",
    "        counter += 1\n",
    "    return sentences"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed 2000 out of 21448 documents\n",
      "Processed 4000 out of 21448 documents\n",
      "Processed 6000 out of 21448 documents\n",
      "Processed 8000 out of 21448 documents\n",
      "Processed 10000 out of 21448 documents\n",
      "Processed 12000 out of 21448 documents\n",
      "Processed 14000 out of 21448 documents\n",
      "Processed 16000 out of 21448 documents\n",
      "Processed 18000 out of 21448 documents\n",
      "Processed 20000 out of 21448 documents\n",
      "Cleaned up training data size (i.e. number of sentences):  284884\n"
     ]
    }
   ],
   "source": [
    "cleaned_word2vec = cleanup_essay_word2vec(combo_set['corrected'], logging=True)\n",
    "print('Cleaned up training data size (i.e. number of sentences): ', len(cleaned_word2vec))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training Word2Vec model...\n",
      "Word2Vec model created.\n",
      "10352 unique words represented by 300 dimensional vectors\n",
      "Word2Vec model saved.\n"
     ]
    }
   ],
   "source": [
    "text_dim = 300\n",
    "print(\"Training Word2Vec model...\")\n",
    "wordvec_model = Word2Vec(cleaned_word2vec, size=text_dim, window=5, min_count=3, workers=4, sg=1)\n",
    "print(\"Word2Vec model created.\")\n",
    "print(\"%d unique words represented by %d dimensional vectors\" % (len(wordvec_model.wv.vocab), text_dim))\n",
    "wordvec_model.save('wordvec_model')\n",
    "print(\"Word2Vec model saved.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define function to create averaged word vectors given a cleaned text.\n",
    "def create_average_vec(essay):\n",
    "    average = np.zeros((text_dim,), dtype='float32')\n",
    "    num_words = 0.\n",
    "    for word in essay.split():\n",
    "        if word in wordvec_model.wv.vocab:\n",
    "            average = np.add(average, wordvec_model.wv[word])\n",
    "            num_words += 1.\n",
    "    if num_words != 0.:\n",
    "        average = np.divide(average, num_words)\n",
    "    return average"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Word vectors for all essays in the training data set are of shape: (12976, 300)\n"
     ]
    }
   ],
   "source": [
    "# Create word vectors\n",
    "cleaned_vec = np.zeros((training_set.shape[0], text_dim), dtype=\"float32\")  \n",
    "for i in range(len(train_cleaned)):\n",
    "    cleaned_vec[i] = create_average_vec(train_cleaned[i])\n",
    "\n",
    "print(\"Word vectors for all essays in the training data set are of shape:\", cleaned_vec.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Neural Network Models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(12976, 31)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read generated features from file:\n",
    "additional_features = pd.read_pickle('training_features.pkl')\n",
    "\n",
    "# Use select features from Gini feature importances\n",
    "feature_list = [\n",
    "                'word_count',\n",
    "                'corrections',\n",
    "                'similarity',\n",
    "                'token_count',\n",
    "                'unique_token_count',\n",
    "                'nostop_count',\n",
    "                'sent_count',\n",
    "                'ner_count',\n",
    "                'comma',\n",
    "                'question',\n",
    "                'exclamation',\n",
    "                'quotation',\n",
    "                'organization',\n",
    "                'caps',\n",
    "                'person',\n",
    "                'location',\n",
    "                'money',\n",
    "                'time',\n",
    "                'date',\n",
    "                'percent',\n",
    "                'noun',\n",
    "                'adj',\n",
    "                'pron',\n",
    "                'verb',\n",
    "                'cconj',\n",
    "                'adv',\n",
    "                'det',\n",
    "                'propn',\n",
    "                'num',\n",
    "                'part',\n",
    "                'intj'\n",
    "                ]\n",
    "\n",
    "additional_features = additional_features[feature_list]\n",
    "\n",
    "stdscaler = StandardScaler()\n",
    "additional_features = stdscaler.fit_transform(additional_features)\n",
    "additional_features.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(12976, 333)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Combine topic number, target score, additional features and cleaned word vectors\n",
    "all_data = pd.concat([training_set[['topic','target_score']], pd.DataFrame(additional_features), pd.DataFrame(cleaned_vec)], axis=1)\n",
    "all_data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Approach 1: Pass each topic individually through neural network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_1 (Dense)              (None, 14)                4648      \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 14)                0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 15        \n",
      "=================================================================\n",
      "Total params: 4,663\n",
      "Trainable params: 4,663\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# Build model\n",
    "output_dim = 1\n",
    "input_dim = all_data.shape[1]-2\n",
    "dropout = 0.2\n",
    "\n",
    "model = None\n",
    "model = Sequential()\n",
    "\n",
    "# Densely Connected Neural Network (Multi-Layer Perceptron)\n",
    "model.add(Dense(14, activation='relu', kernel_initializer='he_normal', input_dim=input_dim)) \n",
    "model.add(Dropout(dropout))\n",
    "# model.add(Dense(8, activation='relu', kernel_initializer='he_normal'))\n",
    "# model.add(Dropout(dropout))\n",
    "model.add(Dense(output_dim))\n",
    "model.summary()\n",
    "\n",
    "# Compile the model\n",
    "adam = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)\n",
    "model.compile(optimizer=adam, loss='mse', metrics=['mse','mae'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Combined Kappa score: 74.40%\n"
     ]
    }
   ],
   "source": [
    "# Run each topic individually through neural network\n",
    "kappa_list = []\n",
    "weights = []\n",
    "epochs = 100\n",
    "\n",
    "for topic in range(1,9):\n",
    "    # split data\n",
    "    X = all_data[all_data.topic == topic].drop(['topic', 'target_score'], axis=1)\n",
    "    y = all_data[all_data.topic == topic].target_score.to_frame()\n",
    "    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=26)\n",
    "    estimator = model.fit(X_train, y_train,\n",
    "#                       validation_split=0.3,\n",
    "                      epochs=epochs, batch_size=15, verbose=0)\n",
    "    # get predictions\n",
    "    y_pred = pd.DataFrame(model.predict(X_test).reshape(-1))\n",
    "    \n",
    "    # get topic kappa score\n",
    "    kappa_list.append(kappa(y_test.values, y_pred.round(0).astype(int).values, weights='quadratic'))\n",
    "\n",
    "    # get weights (number of essays)\n",
    "    weights.append(y_test.shape[0]/all_data.shape[0])    \n",
    "\n",
    "# get weighted average kappa\n",
    "qwk = mean_quadratic_weighted_kappa(kappa_list, weights=1) # weights)\n",
    "print('Combined Kappa score: {:.2f}%'.format(qwk * 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Again with cross-validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Kappa for topic 1 : 0.833%\n",
      "Kappa for topic 2 : 0.706%\n",
      "Kappa for topic 3 : 0.706%\n",
      "Kappa for topic 4 : 0.801%\n",
      "Kappa for topic 5 : 0.825%\n",
      "Kappa for topic 6 : 0.816%\n",
      "Kappa for topic 7 : 0.811%\n",
      "Kappa for topic 8 : 0.736%\n",
      "Combined Kappa score: 0.7841%\n"
     ]
    }
   ],
   "source": [
    "# Cross-validation\n",
    "\n",
    "kappa_dict = {}\n",
    "\n",
    "for topic in range(1,9):\n",
    "    \n",
    "    model = None\n",
    "    # create model\n",
    "    model = Sequential()\n",
    "    model.add(Dense(14, input_dim=input_dim, kernel_initializer='he_normal', activation='relu'))\n",
    "    model.add(Dropout(dropout))\n",
    "    model.add(Dense(1))\n",
    "    # Compile model\n",
    "    model.compile(loss='mean_squared_error', optimizer='adam')\n",
    "\n",
    "    X = all_data[all_data.topic == topic].drop(['topic', 'target_score'], axis=1)\n",
    "    y = all_data[all_data.topic == topic].target_score.to_frame()\n",
    "    # split data\n",
    "    kf = KFold(n_splits=5, random_state=26)\n",
    "    kappa_list = []\n",
    "    for train, test in kf.split(X):\n",
    "        X_train, X_test = X.iloc[train], X.iloc[test]\n",
    "        y_train, y_test = y.iloc[train], y.iloc[test]\n",
    "        model.fit(X_train, y_train, epochs=200, batch_size=15, verbose=0) \n",
    "        y_pred = pd.DataFrame(model.predict(X_test).reshape(-1))\n",
    "        kappa_list.append(kappa(y_pred.round(0).astype(int).values, \n",
    "                        y.iloc[test].values, \n",
    "                        weights='quadratic'))\n",
    "    print(\"Kappa for topic\", topic, \": {:.3f}%\".format(np.mean(kappa_list)))\n",
    "    kappa_dict[topic] = np.mean(kappa_list)\n",
    "\n",
    "mqwk = mean_quadratic_weighted_kappa(list(kappa_dict.values()), weights=1) # weights)\n",
    "print('Combined Kappa score: {:.4f}%'.format(mqwk))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Weighted mean kappa score: 0.7844"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.6629628764416916,\n",
       " 0.7181410595267064,\n",
       " 0.6908575937023509,\n",
       " 0.7535156613789464,\n",
       " 0.8527435740827944]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kappa_list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Approach 2: Combine all topics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "An alternative approach to individually fitting each topic is to combine all topics into a single model. Since each topic has a different range of scores, they essay scores need to be scaled to a common min-max range. \n",
    "\n",
    "A new dataframe with the original scores is created and passed through the train, test, split step. This is necessary to ensure proper re-scaling of target scores in cases where either the highest or lowest scores were eliminated in the *split* step."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# DataFrame used to pass original values through train_test_split\n",
    "scores = all_data[['topic', 'target_score']].reset_index() \n",
    "\n",
    "# Rescale target_score (essay grades) in range 0 - 60:\n",
    "scaler = MinMaxScaler((0,10))\n",
    "\n",
    "# Use this for classification:\n",
    "# ohe = OneHotEncoder(n_values=61)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Rescale and assign target variable y\n",
    "scaled = []\n",
    "for topic in range(1,9):\n",
    "    topic_scores = scores[scores['topic'] == topic]['target_score'].to_frame()\n",
    "    s = (scaler.fit_transform(topic_scores).reshape(-1))\n",
    "    scaled = np.append(scaled, s)\n",
    "    \n",
    "scores['scaled'] = scaled\n",
    "\n",
    "\"\"\"Use this for classification\"\"\"\n",
    "# Caution: using pd.get_dummies might return the wrong number of unique values\n",
    "# y = ohe.fit_transform(scores.scaled.to_frame()) # y = pd.get_dummies(scores.scaled)\n",
    "# print('Number of unique scores after scaling:', unique_scores)\n",
    "# y.shape\n",
    "\n",
    "\"\"\"Use this for regression\"\"\"\n",
    "y = scores['scaled'].to_frame()\n",
    "\n",
    "# Features\n",
    "X = all_data.drop(['topic', 'target_score'], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The histogram of scaled target scores show severe class imbalance due to rescaling. Rebalancing is not applied since our metric is insensitive to class imbalance. Although both classification and regression code is shown below, the focus will be on regression."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHFCAYAAAAJ2AY0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XtclGXC//HvoMMAppMnwDFP9ShpqLWZhLqBGZCJdthd26UlD2U+afkouiW1FpZhHrPVzq/KSq2eXVe3chehg5qLeCoq07R6PFSKuiuHFB1GuH9/+GPWuWEQkGEG/bxfL186133NdV/XdV/A1/swWAzDMAQAAAC3IH93AAAAINAQkAAAAEwISAAAACYEJAAAABMCEgAAgAkBCQAAwISABAAAYEJAAgAAMCEgAQAAmBCQcEFaunSpLBaLtm3bVu325ORkde3a1aOsa9euGj16dJ32k5ubq4yMDBUVFdWzpxefd999V1dddZVCQ0NlsViUn5/v7y5Jkvbt2yeLxaKlS5c2WJvr1q2TxWLRunXraqzXFNdRZmamVq9e7e9uAD5DQAL+v1WrVmnGjBl1ek9ubq5mzpzZpH6w+dPRo0eVmpqqK664QllZWdq0aZN69Ojh7275XVNcRwQkXOia+7sDQKC45ppr/N2FOnO5XLJYLGrevGl8Ke/Zs0cul0u///3vFRcX5+/uXPBKS0sVFhbm724EhPLycp0+fVo2m83fXUETwRkk4P8zX2KrqKjQrFmzFBUVpdDQUF166aXq06ePnn32WUlSRkaG/vCHP0iSunXrJovF4nE5paKiQnPnztWVV14pm82m8PBw3X333frxxx899msYhjIzM9WlSxeFhISoX79+ysnJUXx8vOLj4931Ki/XvPXWW5o6dao6duwom82m7777TkePHtWECRPUq1cvXXLJJQoPD9eNN96oTz/91GNflZeR5s2bpzlz5qhr164KDQ1VfHy8O7xMnz5dDodDdrtdt99+u44cOVKr+XvvvfcUGxursLAwtWzZUgkJCdq0aZN7++jRozVo0CBJ0p133imLxeIxPrPS0lJNmzZN3bp1U0hIiNq0aaN+/frp7bff9qi3efNmDR8+XG3btlVISIiuuOIKTZ482b39u+++05gxY9S9e3eFhYWpY8eOGj58uL766qtajevbb79VSkqKwsPDZbPZ1LNnTz333HNV6n3zzTe6+eabFRYWpnbt2um///u/9fPPP5+z/XOto3fffVeJiYnq0KGDQkND1bNnT02fPl0nTpzwaGf06NG65JJL9NVXXykxMVEtW7bUkCFDJNV+jUlSSUmJe96Dg4PVsWNHTZ482WN/FotFJ06c0BtvvOHub03HUpJeeOEF9e3bV5dccolatmypK6+8Uo888ohHnZ9++kn33XefOnXqpODgYDkcDv3617/W4cOH3XUOHDig3//+9x7HY8GCBaqoqHDXqVznc+fO1axZs9StWzfZbDZ98skntR6jJP35z39WTEyM7Ha7wsLCdPnll2vs2LE1jhMXjqbx306gnir/12hmGMY53zt37lxlZGToj3/8o2644Qa5XC5988037ssg9957r44dO6bFixfrr3/9qzp06CBJ6tWrlyTp/vvv18svv6wHHnhAycnJ2rdvn2bMmKF169bps88+U7t27SRJjz76qGbPnq377rtPd9xxh3744Qfde++9crlc1V5+Sk9PV2xsrF588UUFBQUpPDxcR48elSQ9/vjjioyM1PHjx7Vq1SrFx8fro48+qvLD67nnnlOfPn303HPPqaioSFOnTtXw4cMVExMjq9Wq1157Tfv379e0adN077336r333qtxrlasWKG77rpLiYmJevvtt+V0OjV37lz3/gcNGqQZM2aof//+mjhxojIzMzV48GC1atXKa5tpaWl66623NGvWLF1zzTU6ceKEduzYoX//+9/uOmvXrtXw4cPVs2dPLVy4UJ07d9a+ffuUnZ3trnPw4EG1bdtWTz/9tNq3b69jx47pjTfeUExMjD7//HNFRUV57cPOnTs1YMAAde7cWQsWLFBkZKTWrl2rSZMm6V//+pcef/xxSdLhw4cVFxcnq9Wq559/XhEREVq+fLkeeOCBGudNOvc6+vbbb3XLLbdo8uTJatGihb755hvNmTNHW7Zs0ccff+zRVllZmUaMGKHx48dr+vTp7rVf2zVWWlqquLg4/fjjj3rkkUfUp08fff3113rsscf01Vdf6cMPP5TFYtGmTZt04403avDgwe7L0jUdy3feeUcTJkzQgw8+qPnz5ysoKEjfffeddu7c6a7z008/6brrrpPL5XLv+9///rfWrl2rwsJCRURE6OjRoxowYIDKysr05JNPqmvXrvrggw80bdo0ff/993r++ec99vunP/1JPXr00Pz589WqVSt17969TmO88847deeddyojI0MhISHav39/lTnHBcwALkCvv/66IanGP126dPF4T5cuXYxRo0a5XycnJxtXX311jfuZN2+eIcnYu3evR/muXbsMScaECRM8yjdv3mxIMh555BHDMAzj2LFjhs1mM+68806Peps2bTIkGXFxce6yTz75xJBk3HDDDecc/+nTpw2Xy2UMGTLEuP32293le/fuNSQZffv2NcrLy93lixYtMiQZI0aM8Ghn8uTJhiSjuLjY677Ky8sNh8Nh9O7d26PNn3/+2QgPDzcGDBhQZQx//vOfzzmG6Oho47bbbquxzhVXXGFcccUVxsmTJ8/ZXqXTp08bZWVlRvfu3Y0pU6a4yyvn5vXXX3eXJSUlGZdddlmV8T/wwANGSEiIcezYMcMwDOPhhx82LBaLkZ+f71EvISHBkGR88sknNfbJ2zoyq6ioMFwul7F+/XpDkvHFF1+4t40aNcqQZLz22mse76nLGps9e7YRFBRkbN261aPuX/7yF0OS8fe//91d1qJFC4+vl5o88MADxqWXXlpjnbFjxxpWq9XYuXOn1zrTp083JBmbN2/2KL///vsNi8Vi7N692zCM/xzLK664wigrK/OoW9sxzp8/35BkFBUV1WqMuPBwiQ0XtDfffFNbt26t8qfyUk9N+vfvry+++EITJkzQ2rVrVVJSUuv9Vp7KNz8V179/f/Xs2VMfffSRJCkvL09Op1MjR470qHf99ddXecqu0q9+9atqy1988UX94he/UEhIiJo3by6r1aqPPvpIu3btqlL3lltuUVDQf778e/bsKUkaNmyYR73K8gMHDngZqbR7924dPHhQqampHm1ecskl+tWvfqW8vDyVlpZ6fb83/fv31z/+8Q9Nnz5d69at08mTJz2279mzR99//73uuecehYSEeG3n9OnTyszMVK9evRQcHKzmzZsrODhY3377bbVzU+nUqVP66KOPdPvttyssLEynT592/7nlllt06tQp5eXlSTpzvK+66ir17dvXo42UlJQ6j9vs//7v/5SSkqLIyEg1a9ZMVqvVff9Wdf03r4+6rLEPPvhA0dHRuvrqqz3Gm5SUVKun8bzp37+/ioqK9Lvf/U5/+9vf9K9//atKnX/84x8aPHiwe81V5+OPP1avXr3Uv39/j/LRo0fLMIwqZ3dGjBghq9VarzFed911kqSRI0fqf//3f/XTTz/VZ+howghIuKD17NlT/fr1q/LHbref873p6emaP3++8vLyNHToULVt21ZDhgzx+tEBZ6u8DFR5ueRsDofDvb3y74iIiCr1qivz1ubChQt1//33KyYmRitXrlReXp62bt2qm2++uUqwkKQ2bdp4vA4ODq6x/NSpU9X25ewxeBtrRUWFCgsLvb7fmz/96U96+OGHtXr1ag0ePFht2rTRbbfdpm+//VaS3JcVL7vsshrbSUtL04wZM3Tbbbfp/fff1+bNm7V161b17du32rk5e1ynT5/W4sWLZbVaPf7ccsstkuT+Qf/vf/9bkZGRVdqorqwujh8/rl/+8pfavHmzZs2apXXr1mnr1q3661//KklV+h8WFlblUldd1tjhw4f15ZdfVhlvy5YtZRhGtcGmNlJTU92XbX/1q18pPDxcMTExysnJcdc5evToOY/lv//9b6/rrHL72aqrW9sx3nDDDVq9erVOnz6tu+++W5dddpmio6Or3AOHCxf3IAFeNG/eXGlpaUpLS1NRUZE+/PBDPfLII0pKStIPP/xQ49NBbdu2lSQdOnSoyjf9gwcPuu8/qqx39k2olQoKCqo9i2SxWKqULVu2TPHx8XrhhRc8ymtzk/D5OnusZgcPHlRQUJBat25d53ZbtGihmTNnaubMmTp8+LD7bNLw4cP1zTffqH379pJU5aZ3s2XLlunuu+9WZmamR/m//vUvXXrppV7f17p1azVr1kypqamaOHFitXW6desm6cwcFBQUVNleXVldfPzxxzp48KDWrVvn8dSft48DqG5t1GWNtWvXTqGhoXrttdeqbb9y3dbHmDFjNGbMGJ04cUIbNmzQ448/ruTkZO3Zs0ddunRR+/btz3ks27Zt63WdVde/6uajLmO89dZbdeutt8rpdCovL0+zZ89WSkqKunbtqtjY2HOOGU0bZ5CAWrj00kv161//WhMnTtSxY8e0b98+SXI/Mmz+n/yNN94o6cwP57Nt3bpVu3btcj9dFBMTI5vNpnfffdejXl5envbv31/r/lksliqPL3/55ZceT5H5SlRUlDp27KgVK1Z43Px+4sQJrVy50v1k2/mIiIjQ6NGj9bvf/U67d+9WaWmpevTooSuuuEKvvfaanE6n1/dWNzdr1qw55yWTsLAwDR48WJ9//rn69OlT7ZnIyvAxePBgff311/riiy882lixYkWtxudtHVX+gDf3/6WXXqpVu1Ld1lhycrK+//57tW3bttrxnh2mbDZbjWfgvGnRooWGDh2qRx99VGVlZfr6668lSUOHDtUnn3yi3bt3e33vkCFDtHPnTn322Wce5W+++aYsFosGDx58zv3XZYyVbDab4uLiNGfOHEnS559/XocRo6niDBLgxfDhwxUdHa1+/fqpffv22r9/vxYtWqQuXbqoe/fukqTevXtLkp599lmNGjVKVqtVUVFRioqK0n333afFixcrKChIQ4cOdT/F1qlTJ02ZMkXSmUtaaWlpmj17tlq3bq3bb79dP/74o2bOnKkOHTp43NNTk+TkZD355JN6/PHHFRcXp927d+uJJ55Qt27dqn2KryEFBQVp7ty5uuuuu5ScnKzx48fL6XRq3rx5Kioq0tNPP12vdmNiYpScnKw+ffqodevW2rVrl9566y2PwPXcc89p+PDhuv766zVlyhR17txZBw4c0Nq1a7V8+XJJZ+Zm6dKluvLKK9WnTx9t375d8+bNO+flHOnMcR00aJB++ctf6v7771fXrl31888/67vvvtP777/vvudl8uTJeu211zRs2DDNmjXL/RTbN998U6uxeltHAwYMUOvWrfXf//3fevzxx2W1WrV8+fIqQawmdVljkydP1sqVK3XDDTdoypQp6tOnjyoqKnTgwAFlZ2dr6tSpiomJcfd53bp1ev/999WhQwe1bNnS6xOB48aNU2hoqAYOHKgOHTqooKBAs2fPlt1ud9/r88QTT+gf//iHbrjhBj3yyCPq3bu3ioqKlJWVpbS0NF155ZWaMmWK3nzzTQ0bNkxPPPGEunTpojVr1uj555/X/fffX6sPHa3tGB977DH9+OOPGjJkiC677DIVFRXp2Wef9bgHDBc4/94jDvhG5VNs5idVKg0bNuycT7EtWLDAGDBggNGuXTsjODjY6Ny5s3HPPfcY+/bt83hfenq64XA4jKCgII8nlsrLy405c+YYPXr0MKxWq9GuXTvj97//vfHDDz94vL+iosKYNWuWcdlllxnBwcFGnz59jA8++MDo27evxxNoNT0B5nQ6jWnTphkdO3Y0QkJCjF/84hfG6tWrjVGjRnmMs/Lpnnnz5nm831vb55rHs61evdqIiYkxQkJCjBYtWhhD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N3PuG6zphmVex+5yH67j+rYZsAFp+/btevbZZ/XZZ5/VeBmsum2GYXiUm+tU3qBdU7uzZ8/WzJkzq5RnZ2crLCzsnP2vq5ycnAZvE1Uxz42DeW543n4Nw5P9KiRJf//73xuxNxcf1nTDONevE/HFPJeWltbrfQEbkD799FMdOXJEnTt3dpeVl5dr6tSpWrRokfbt26fIyEgdPny4ynuPHj3qPksUGRnpPptU6ciRI5L+cyapOunp6UpLS3O/LikpUadOnZSYmKhWrVqd19jO5nK5lJOTo4SEBFmt1gZrF56Y58bBPPtOdMZaj9e2IENP9qvQjG1BclZYtCMjyU89a3zmuThbQ88Da7pheTt2levZF/NceQWorgI2IKWmpuqmm27yKEtKSlJqaqrGjBkjSYqNjVVxcbG2bNmi/v3PxNLNmzeruLhYAwYMcNd55JFHVFZWpuDgYElnzgI5HI4ql97OZrPZPO5bqmS1Wn3yReKrduGJeW4czHPDc5ZXf8bbWWGRs9xyUc23t7mQ5LN5YE03jJqOneSbea5ve34NSMePH9d3333nfr13717l5+erTZs26ty5s9q2betR32q1KjIyUlFRUZKknj176uabb9a4ceP00ksvSZLuu+8+JScnu+ukpKRo5syZGj16tB555BF9++23yszM1GOPPcYTbAAAoFp+fYpt27Ztuuaaa3TNNddIktLS0nTNNdfoscceq3Uby5cvV+/evZWYmKjExET16dNHb731lnu73W5XTk6OfvzxR/Xr108TJkxQWlqax+UzAACAs/n1DFJ8fHydPtG6usfy27Rpo2XLltX4vt69e2vDhg117R4AALhIBfTnIAEAAPgDAQkAAMCEgAQAAGBCQAIAADAhIAEAAJgQkAAAAEwISAAAACYEJAAAABMCEgAAgAkBCQAAwISABAAAYOLX38UGAP7Sdfoar9v2PT2sEXsCIBBxBgkAAMCEgAQAAGBCQAIAADAhIAEAAJgQkAAAAEwISAAAACYEJAAAABMCEgAAgAkBCQAAwISABAAAYEJAAgAAMCEgAQAAmBCQAAAATJr7uwMAGha/pR4Azh8BCQDgFYEbFysusQEAAJgQkAAAAEwISAAAACYEJAAAABO/BqQNGzZo+PDhcjgcslgsWr16tXuby+XSww8/rN69e6tFixZyOBy6++67dfDgQY82CgsL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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# score histogram\n",
    "y.hist(bins=61)\n",
    "plt.title('Histogram of scaled target scores')\n",
    "plt.xlabel('target score')\n",
    "plt.ylabel('count')\n",
    "plt.savefig('image6.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X_train size: (10380, 331)\n",
      "X_test size: (2596, 331)\n",
      "y_train size: (10380, 1)\n",
      "y_test size: (2596, 1)\n",
      "scores_train size: (10380, 4)\n",
      "scores_test size: (2596, 4)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Data to be split\n",
    "X_train, X_test, y_train, y_test, scores_train, scores_test = \\\n",
    "        train_test_split(\n",
    "                X, \n",
    "                y, \n",
    "                scores,\n",
    "                test_size=0.2, \n",
    "                random_state=26\n",
    "                )\n",
    "\n",
    "print('X_train size: {}'.format(X_train.shape))\n",
    "print('X_test size: {}'.format(X_test.shape))\n",
    "print('y_train size: {}'.format(y_train.shape))\n",
    "print('y_test size: {}'.format(y_test.shape))\n",
    "print('scores_train size: {}'.format(scores_train.shape))\n",
    "print('scores_test size: {}'.format(scores_test.shape))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "output_dim = y.shape[1]\n",
    "input_dim = X.shape[1]\n",
    "dropout = 0.2\n",
    "\n",
    "def build_model(architecture='mlp'):\n",
    "    model = Sequential()\n",
    "    if architecture == 'mlp':\n",
    "        # Densely Connected Neural Network (Multi-Layer Perceptron)\n",
    "        model.add(Dense(14, activation='relu', kernel_initializer='he_normal', input_dim=input_dim)) \n",
    "        model.add(Dropout(dropout))\n",
    "\n",
    "# Classification:\n",
    "#         model.add(Dense(output_dim, activation='softmax'))\n",
    "\n",
    "# Regression:\n",
    "        model.add(Dense(output_dim))\n",
    "    elif architecture == 'cnn':\n",
    "        # 1-D Convolutional Neural Network\n",
    "        inputs = Input(shape=(input_dim,1))\n",
    "\n",
    "        x = Conv1D(64, 3, strides=1, padding='same', activation='relu')(inputs)\n",
    "\n",
    "        #Cuts the size of the output in half, maxing over every 2 inputs\n",
    "        x = MaxPooling1D(pool_size=2)(x)\n",
    "        x = Conv1D(128, 3, strides=1, padding='same', activation='relu')(x)\n",
    "        x = GlobalMaxPooling1D()(x) \n",
    "        outputs = Dense(output_dim, activation='softmax')(x)\n",
    "\n",
    "        model = Model(inputs=inputs, outputs=outputs, name='CNN')\n",
    "    elif architecture == 'lstm':\n",
    "        # LSTM network\n",
    "        inputs = Input(shape=(input_dim,1))\n",
    "\n",
    "        x = Bidirectional(LSTM(64, return_sequences=True),\n",
    "                          merge_mode='concat')(inputs)\n",
    "        x = Dropout(dropout)(x)\n",
    "        x = Flatten()(x)\n",
    "        outputs = Dense(output_dim, activation='softmax')(x)\n",
    "\n",
    "        model = Model(inputs=inputs, outputs=outputs, name='LSTM')\n",
    "    else:\n",
    "        print('Error: Model type not found.')\n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Model Architecture\n",
    "\n",
    "Of the three model architectures the multi-layer perceptron, or 'mlp', consistently produced the highest kappa scores in the shortest amount of calculation time. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_3 (Dense)              (None, 14)                4648      \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 14)                0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 1)                 15        \n",
      "=================================================================\n",
      "Total params: 4,663\n",
      "Trainable params: 4,663\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# Define keras model\n",
    "model = None\n",
    "# Using MLP in kernel for speed\n",
    "model = build_model('mlp')\n",
    "# model = build_model('cnn')\n",
    "# model = build_model('lstm')\n",
    "\n",
    "# If the model is a CNN then expand the dimensions of the training data\n",
    "if model.name == \"CNN\" or model.name == \"LSTM\":\n",
    "    X_train = np.expand_dims(X_train, axis=2)\n",
    "    X_test = np.expand_dims(X_test, axis=2)\n",
    "    print('Text train shape: ', X_train.shape)\n",
    "    print('Text test shape: ', X_test.shape)\n",
    "    \n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compile the model\n",
    "# Optimizer\n",
    "# sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)\n",
    "adam = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)\n",
    "\n",
    "# Classification:\n",
    "# model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['acc'])\n",
    "\n",
    "# Regression:\n",
    "model.compile(optimizer=adam, loss='mse', metrics=['mse','mae'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define number of epochs\n",
    "epochs = 100\n",
    "\n",
    "# Fit the model to the training data\n",
    "estimator = model.fit(X_train, y_train,\n",
    "#                       validation_split=0.3,\n",
    "                      epochs=epochs, batch_size=15, verbose=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"Classification: Test set predictions \"\"\"\n",
    "# y_proba = model.predict(X_test)\n",
    "# y_pred = pd.Series(y_proba.argmax(axis=-1))\n",
    "\n",
    "# Classification, if using pd.get_dummies:\n",
    "# y_t = pd.Series(y_test.columns[np.where(y_test != 0)[1]])\n",
    "\n",
    "# Classification, if using OneHotEncoder:\n",
    "# y_t = csr_matrix.argmax(y_test, axis=1)\n",
    "# y_t = pd.Series(np.squeeze(np.asarray(y_t)))\n",
    "\n",
    "# Regression, use 'y_test'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "Regression\n",
    "True y, not needed for kappa metric because already passed with train, test, split\n",
    "Used to verify reverse scaling\n",
    "\"\"\"\n",
    "y_pred = pd.DataFrame(model.predict(X_test).reshape(-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>topic</th>\n",
       "      <th>target_score</th>\n",
       "      <th>scaled</th>\n",
       "      <th>y_pred</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1751</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.611197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1075</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>10.0</td>\n",
       "      <td>8.725337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>383</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.747321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>706</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.470211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>831</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.475881</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   index  topic  target_score  scaled    y_pred\n",
       "0   1751      1            10     8.0  7.611197\n",
       "1   1075      1            12    10.0  8.725337\n",
       "2    383      1            10     8.0  7.747321\n",
       "3    706      1            10     8.0  7.470211\n",
       "4    831      1            10     8.0  7.475881"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"Reverse scaling back to original target score scales\"\"\"\n",
    "\n",
    "# Merge results\n",
    "results = scores_test.reset_index(drop=True)\\\n",
    "                    .join(y_pred)\\\n",
    "                    .rename(columns={0:'y_pred'})\\\n",
    "                    .sort_values(by='topic')\\\n",
    "                    .reset_index(drop=True)\n",
    "results.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Histograms of true and predicted target scores show generally a good agreement with the distribution trend. The plots are somewhat misleading since the scaled target scores have the same number of unique values before and after scaling. Since the Kappa metric calculates the distance, the spread of predicted values is not as worrisome."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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iawDAHgrl5q8DRs2mF0HAAAehawDAHgrU6/JAwAAAABYy6UzeVdccYVsNtsFvXbz5s2ufAQAAJYi6wAA3sqlJu+6667T008/rdatWyspKUmStGnTJv3www+65557ZLfbTS0SAIDaRtYBALyVS03esWPHNHbsWKWnp1daPnXqVP3888/65z//aUpxaWlpmj59eqVl0dHRysnJkVQx09n06dO1dOlSHT16VFdeeaUWLlyo9u3bm/L5AAD/VVtZBwCA2Vy6Ju+VV17RnXfeWWX5iBEj9Oqrr7pd1K+1b99e2dnZzse2bducP5szZ47mzZunjIwMbdmyRTExMbr++utVUFBgag0AAP9Tm1kHAICZXGry7Ha7Nm7cWGX5xo0bTR++UqdOHcXExDgfTZo0kVRxFm/+/PmaOnWqBgwYoA4dOui5557TiRMntGLFClNrAAD4n9rKurS0NNlstkqPmJgY588Nw1BaWppiY2MVGhqqXr16afv27aZ9PgDA97g0XHPcuHG699579c033+iqq66SVHGdwrJly/TXv/7V1AJ37dql2NhY2e12XXnllUpPT9fFF1+srKws5eTkqG/fvs7X2u129ezZUxs3btQ999xzznWWlJSopKTE+Tw/P9/UmgEA3q82s659+/Zas2aN83lgYKDz36dHrTz77LNq3bq1Zs6cqeuvv14//PCD6tWrZ2odAADf4FKTN3XqVCUmJurJJ5/UM888I0lq27atli1bpsGDB5tW3JVXXqnnn39erVu31s8//6yZM2fq6quv1vbt253X5UVHR1d6T3R0tPbt23fe9c6ePbvKtX4AAPxabWWddGbUym/9dtSKJD333HOKjo7WihUrzntAEwDgvoPHTupoUalb62gQHqxmkaEmVXRhXGryJGnw4MGmh9xv9evXz/nvjh07KikpSS1atNBzzz3nPKr62+mtDcP43Smvp0yZotTUVOfz/Px8xcfHm1g5AMAX1EbWSeaPWmHECgC47+Cxk+ozd51OlpW7tZ7QoECtmdCzVhs9l5u8/Px8vfHGG9qzZ48efPBBNWjQQP/9738VFRWlpk2bmlmjU3h4uDp27Khdu3bplltukSTl5ORU+rzc3NwqZ/d+y263M/U1AOB31UbW1cSoFUasAID7jhaV6mRZueb/uZNaRtV1aR27cwuV8nKmjhaVen6T97///U99+vRR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koJDhw5h3759ssQDNMxZunN+RqdOneDh4SHbvI2YmBiMHz8ePXv2RGFhIZYtW4aysjLMmDFDlnhee+01hISEIC4uDkDLVdcAAAIbSURBVJMnT8bRo0eRmJiIxMREWeJpVF9fj6SkJMyYMQMdO8r/cTZ+/HgsX74cPXv2RL9+/fDjjz/ivffew+zZs2WNa//+/RAEAX379kV2djZef/119O3bF7NmzbLI8e/22RgZGYm4uDgEBAQgICAAcXFxcHZ2xtSpUy0SH7VOabnNGErMg8ZQYs40hhLzqzGUlouNpdTcbQyl5fm2UsTfAxa7ZtgOfPPNNwKAJo8ZM2bIEk9zsQAQkpKSZIlHEARh9uzZQq9evQQHBwehe/fuwujRo4UDBw7IFk9L5J4zMGXKFMHHx0ewt7cXfH19hQkTJsg+B2Pv3r1CUFCQoFarhXvvvVdITEyUNR5BEIT9+/cLAIRz587JHYogCIJQVlYmLFiwQOjZs6fg6Ogo3HPPPcLixYsFnU4na1w7d+4U7rnnHsHBwUHw9vYWIiIihJKSEosd/26fjfX19cKSJUsEb29vQa1WC8OHDxdOnTplsfiodUrLbcZQYh40hrXkTGPInV+NocRcbCwl5m5jKC3Pt5US/h5QCYIgWKSaJCIiIiIiIslxTh4REREREZENYZFHRERERERkQ1jkERERERER2RAWeURERERERDaERR4REREREZENYZFHRERERERkQ1jkERERERER2RAWeURERERERDaERR4REREREZENYZFHRERERERkQ1jkERERERER2RAWeURERERERDbk/wBr94Pp8rGP2gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 900x900 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "topic_number = 0\n",
    "fig, ax = plt.subplots(4,2, figsize=(9,9), sharey=False)\n",
    "for i in range(4):\n",
    "    for j in range(2):\n",
    "        topic_number += 1\n",
    "        results[results['topic'] == topic_number]\\\n",
    "            [['scaled', 'y_pred']]\\\n",
    "            .plot.hist(histtype='step', bins=20, ax=ax[i, j], rot=0)\n",
    "        ax[i,j].set_title('Topic %i' % topic_number)\n",
    "ax[3,0].locator_params(nbins=10)\n",
    "ax[3,1].locator_params(nbins=10)\n",
    "plt.suptitle('Scaled prediction errors')\n",
    "plt.tight_layout(rect=[0, 0.03, 1, 0.95])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Prediction errors are greatest at the highest and lowest scores. Typically, the extreme scores have low representation and therefore the highest expected variance, therefore this is, once again, less worrisome."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAANcCAYAAADikWZQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3X18z/X+x/Hnd7N9za7YXG02LOT66lhqEiuyJPHrHCfVKY6LyuZyToVOGaoVERJLxyFKOcfpQkImTCcSooNcpGiKYWSblWF7//5w9j2+bXMx+17su8f9dvvcbn0+38/n/X5+PuT9eX0/F1+LMcYIAAAAAOARvFwdAAAAAABQdijyAAAAAMCDUOQBAAAAgAehyAMAAAAAD0KRBwAAAAAehCIPAAAAADwIRR4AAAAAeBCKPAAAAADwIBR5AAAAAOBBKPIAwAk2b96s//u//1PdunVltVpVq1YtxcTEaPTo0Q7rc8GCBbJYLDp06FCZtZmUlCSLxVJm7TmaxWJRUlKSbb60x2TFihV27Vyqfv366t+/f6kzAgBQ1ijyAMDBPv74Y3Xo0EHZ2dmaPHmyVq9erRkzZujWW2/VkiVLXB2vQunRo4c2bdqksLCwa9puxYoVmjBhQrGfvf/++3rmmWfKIh4AAGWikqsDAICnmzx5sqKiovTJJ5+oUqX//bPbt29fTZ482YXJ3FN+fr4uXLggq9Va5m3XqFFDNWrUKNM227ZtW6btOcPljvH58+dlsVjs/q5eq7JoAwBQelzJAwAHO3nypKpXr17sCa+XV9F/hhcvXqyYmBgFBAQoICBAbdq00bx582yfp6amqlevXoqIiFDlypXVsGFDPfbYY8rMzLyqPGvWrFGXLl0UFBSkKlWq6NZbb9Wnn35aZL2PP/5Ybdq0kdVqVVRUlF5++eWr3ufY2Fi1aNFCn332mW655Rb5+fmpTp06euaZZ5Sfn29b79ChQ7JYLJo8ebKee+45RUVFyWq1at26dZKk7Oxs/eUvf1FUVJR8fX1Vp04djRw5Urm5uXb9ZWdna/DgwQoNDVVAQIDuuusu7d+/v0iukm7XXLVqlbp06aLg4GBVqVJFTZs2VXJysiSpf//+eu211yRdvP2zcCpso7jbNdPT0/WnP/1JNWvWlNVqVdOmTTV16lQVFBQU2feXX35Z06ZNU1RUlAICAhQTE6Mvvvjiqo5zRkaGHnvsMUVERMjX11dRUVGaMGGCLly4cFXHeP369bJYLFq0aJFGjx6tOnXqyGq16sCBA5KkXbt2qVevXqpWrZoqV66sNm3a6M0337TLcLk2fvnlF9ufX+XKlRUSEqLo6Gi98847V7V/AIDS4Ss2AHCwmJgY/e1vf9Pw4cP10EMP6Xe/+518fHyKXffZZ5/VpEmTdN9992n06NEKDg7Wrl279MMPP9jW+e677xQTE6NBgwYpODhYhw4d0rRp09SxY0ft3LmzxLYl6a233tIjjzyiXr166c0335SPj49ef/11xcXF6ZNPPlGXLl0kSZ9++ql69eqlmJgYvfvuu8rPz9fkyZN17Nixq97vjIwM9e3bV2PGjNHEiRP18ccf67nnntPPP/+sWbNm2a07c+ZM3XjjjXr55ZcVFBSkRo0a6ZdfflHnzp31448/aty4cWrVqpV2796tZ599Vjt37tSaNWtksVhkjFHv3r21ceNGPfvss7rpppv0+eefq3v37leVc968eRo8eLA6d+6slJQU1axZU/v379euXbskSc8884xyc3O1dOlSbdq0ybZdSbd8njhxQh06dNC5c+c0adIk1a9fX8uXL9df/vIXfffdd5o9e7bd+q+99pqaNGmi6dOn2/q7++67dfDgQQUHB1/2+LZv315eXl569tln1aBBA23atEnPPfecDh06pPnz51/xGBcWqmPHjlVMTIxSUlLk5eWlmjVrat++ferQoYNq1qypmTNnKjQ0VG+99Zb69++vY8eO6cknn7Rrv7g2EhMTtWjRIj333HNq27atcnNztWvXLp08efKq/mwAAKVkAAAOlZmZaTp27GgkGUnGx8fHdOjQwSQnJ5ucnBzbet9//73x9vY2Dz300FW3XVBQYM6fP29++OEHI8l8+OGHts/mz59vJJmDBw8aY4zJzc01ISEhpmfPnnZt5Ofnm9atW5v27dvblt18880mPDzc/Prrr7Zl2dnZJiQkxFzN0NG5c+cieYwxZvDgwcbLy8v88MMPxhhjDh48aCSZBg0amHPnztmtm5ycbLy8vMyWLVvsli9dutRIMitWrDDGGLNy5UojycyYMcNuveeff95IMuPHjy/xmOTk5JigoCDTsWNHU1BQUOL+JCQklLjf9erVM/369bPNjxkzxkgymzdvtltvyJAhxmKxmH379tnte8uWLc2FCxds63355ZdGknnnnXdKzGOMMY899pgJCAiwHctCL7/8spFkdu/ebddPccd43bp1RpLp1KlTkfb79u1rrFarSU9Pt1vevXt3U6VKFXP69OkrttGiRQvTu3fvy+4HAKDscbsmADhYaGioPvvsM23ZskUvvviievXqpf3792vs2LFq2bKl7TbL1NRU5efnKyEh4bLtHT9+XI8//rgiIyNVqVIl+fj4qF69epKkPXv2lLjdxo0bderUKfXr108XLlywTQUFBbrrrru0ZcsW5ebmKjc3V1u2bNF9992nypUr27YPDAxUz549r3q/AwMDde+999ote/DBB1VQUKANGzbYLb/33nuLXIFcvny5WrRooTZt2tjljYuLk8Vi0fr16yXJdmvnQw89VKSvK9m4caOys7MVHx9fZm8NXbt2rZo1a6b27dvbLe/fv7+MMVq7dq3d8h49esjb29s236pVK0myu3pbnOXLl+v2229XeHi43fEpvIKZlpZmt35xx7jQ73//+2L3o0uXLoqMjCyyH7/88ovdVc2S2mjfvr1WrlypMWPGaP369fr1118vu08AgLLB7ZoA4CTR0dGKjo6WdPHFFE899ZReeeUVTZ48WZMnT9aJEyckSRERESW2UVBQoG7duunIkSN65pln1LJlS/n7+6ugoEC33HLLZU+iC2+1/MMf/lDiOqdOnZLFYlFBQYFq165d5PPilpWkVq1aJW7/29v1irv18dixYzpw4ECJhUlhcXzy5ElVqlRJoaGh15z1ao75tTp58qTq169fZHl4eLjt80v9Nnfhy1CuVBAdO3ZMH3300RWPT6HLvVG0uM9OnjxZ7PKS9qO4dWfOnKmIiAgtWbJEL730kipXrqy4uDhNmTJFjRo1KjEPAOD6UOQBgAv4+Pho/PjxeuWVV2zPfhW+9fHHH38scvWk0K5du/T1119rwYIF6tevn2154YsyLqd69eqSpFdffVW33HJLsevUqlXL9mbEjIyMIp8Xt6wkxT2/V7j9bwub4q6iVa9eXX5+fvr73/9ebPuF+xMaGqoLFy7o5MmTdu1eTdZLj3lZCQ0N1dGjR4ssP3LkiKT/5b5e1atXV6tWrfT8888X+3lhMVboclcqi/vsWvejuDb8/f01YcIETZgwQceOHbNd1evZs6f27t1bYh4AwPXhdk0AcLDi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Kz13zufO2ST3zkc2XCv+XDgGhTgOHINCHIeLyuNxcOsXrwAAAAAArg3P5AEAAACAB6HIAwAAAAAPQpEHAAAAAB6EIg8AAAAAPEiFKPKSk5N10003KTAwUDVr1lTv3r21b98+V8cqVnJysiwWi0aOHOnqKEpKSpLFYrGbateu7epYdn766Sf96U9/UmhoqKpUqaI2bdpo27Ztro6l+vXrFzl2FotFCQkJro6mCxcu6K9//auioqLk5+enG264QRMnTlRBQYGro9nk5ORo5MiRqlevnvz8/NShQwdt2bLF6Tk2bNignj17Kjw8XBaLRR988IHd58YYJSUlKTw8XH5+foqNjdXu3bvdJt97772nuLg4Va9eXRaLRTt27HCLbOfPn9dTTz2lli1byt/fX+Hh4XrkkUd05MgRp+XDRVf6O1QRlKdzBEeZM2eOWrVqZfux55iYGK1cudLVsVzOnc7JnKk8nP85g7ueY16tClHkpaWlKSEhQV988YVSU1N14cIFdevWTbm5ua6OZmfLli2aO3euWrVq5eooNs2bN9fRo0dt086dO10dyebnn3/WrbfeKh8fH61cuVLffPONpk6dqqpVq7o6mrZs2WJ33FJTUyVJffr0cXEy6aWXXlJKSopmzZqlPXv2aPLkyZoyZYpeffVVV0ezGTRokFJTU7Vo0SLt3LlT3bp1U9euXfXTTz85NUdubq5at26tWbNmFfv55MmTNW3aNM2aNUtbtmxR7dq1deeddyonJ8ct8uXm5urWW2/Viy++6JQ8v+27pGy//PKLvvrqKz3zzDP66quv9N5772n//v269957nZ6zorvS36GKoLycIzhSRESEXnzxRW3dulVbt27VHXfcoV69ejn1Syt3447nZM7kzud/zuDO55hXzVRAx48fN5JMWlqaq6PY5OTkmEaNGpnU1FTTuXNnM2LECFdHMuPHjzetW7d2dYwSPfXUU6Zjx46ujnFVRowYYRo0aGAKCgpcHcX06NHDDBgwwG7ZfffdZ/70pz+5KJG9X375xXh7e5vly5fbLW/durV5+umnXZTKGEnm/ffft80XFBSY2rVrmxdffNG27OzZsyY4ONikpKS4PN+lDh48aCSZ7du3OznVRZfLVujLL780kswPP/zgpFT4rav5c6oI3PEcwRWqVatm/va3v7k6hku44zmZM7n7+Z8zlKdzzJJU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YrHYlt166606c+aMfvzxR9uy6Ohou+0csR8AAOdhnGOcg2fidk2gBP/4xz80atQoTZ06VTExMQoMDNSUKVO0efNmu/X8/f3t5s1/b2X5rUuXFxQUKCwsTOvXry+yXtWqVUuVNzIyUvv27VNqaqrWrFmj+Ph4TZkyRWlpafLz87vstsYYu4Hv0ryXLv/tvjpiPwAAzsE4xzgHz0WRB/yXr6+v8vPzbfOfffaZOnTooPj4eNuyq/nWrkmTJrpw4YK2b9+udu3aSZIOHDig06dP29b53e9+p4yMDFWqVEn169e/qjxXw8/PT/fee6/uvfdeJSQkqEmTJtq5c6datmypgoICpaWlqWvXrkW2a9asmf71r3/ZDYIbN25UYGCg6tSpU2J/V7MfAAD3wDjHOIeKg9s1gf+qX7++Nm/erEOHDikzM1MNGzbU1q1b9cknn2j//v165plntGXLliu206RJE3Xt2lWPPvqovvzyS23fvl2PPvqo/Pz8bANL165dFRMTo969e+uTTz7RoUOHtHHjRv31r3/V1q1bbXkOHjyoHTt2KDMzU3l5eZftd8GCBZo3b5527dql77//XosWLZKfn5/q1aun+vXrq1+/fhowYIA++OADHTx4UOvXr9c//vEPSVJ8fLwOHz6sYcOGae/evfrwww81fvx4JSYmysur5H8mrmY/AADugXGOcQ4ViKseBgTczb59+8wtt9xi/Pz8jCSzd+9e079/fxMcHGyqVq1qhgwZYsaMGWP3kHi/fv1Mr169irR15MgR0717d2O1Wk29evXM4sWLTc2aNU1KSoptnezsbDNs2DATHh5ufHx8TGRkpHnooYdMenq6McaYs2fPmt///vematWqRpKZP3/+ZfO///775uabbzZBQUHG39/f3HLLLWbNmjW2z3/99VczatQoExYWZnx9fU3Dhg3N3//+d9vn69evNzfddJPx9fU1tWvXNk899ZQ5f/687fOSHti/0n4AANwD4xzjHCoOizEl3FgNoMz8+OOPioyM1Jo1a9SlSxdXxwEAoEwxzgHuhSIPcIC1a9fqzJkzatmypY4ePaonn3xSP/30k/bv3y8fHx9XxwMA4LowzgHujWfyAAc4f/68xo0bp+bNm+v//u//VKNGDdsPxpbW22+/bff65kun5s2bl2F6AAAuj3EOcG9cyQPKiZycHB07dqzYz3x8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ncGDBys4ONg9XVxcrI4dO2r48OHueX379tVll13mnt63b59OnDihyy+/XF26dHG/SkpK9Nlnn3lU6/Tp0/X111/ryiuv1H333actW7a4L0MpKChQhw4ddNNNN13wvYWFhUpKSpLD4XDPu/7663XixAl9/vnn7nmJiYkN3ueN4wAA+A59jj4He+JyTaAJL730kubNm6elS5cqKSlJYWFhWrJkiT766KMG64WGhjaYNv++lOXbzp9fX1+vnj17Kjc3t9F6Xbt29ajeuLg4FRcXKycnRzt27FB6erqWLFmivLw8hYSENPteY0yDxnd+vefP//axeuM4AAC+QZ+jz8G+CHnAvwUHB+vs2bPu6ffee0+jRo1Senq6e96l/Gp39dVX68yZM9q/f79GjBghSTp06JCOHz/uXmf48OGqrKxUx44d1bt370uq51KEhITo1ltv1a233qqMjAxdffXVOnDggAYPHqz6+nrl5eVp/Pjxjd43YMAAvfrqqw2a4J49exQWFqYrrriiyf1dynEAAPwDfY4+h8DB5ZrAv/Xu3VsfffSRDh8+rKqqKvXt21f5+fl6++23dfDgQf3sZz/T3r17L7qdq6++WuPHj9esWbP0l7/8Rfv379esWbMUEhLibizjx49XUlKSpk6dqrfffluHDx/Wnj179NOf/lT5+fnuekpKSlRQUKCqqiq5XK5m97thwwatW7dOn3zyif7xj3/od7/7nUJCQhQfH6/evXsrNTVV99xzj7Zu3aqSkhLl5ubqpZdekiSlp6errKxMc+bMUVFRkbZt26bHH39cmZmZCgpq+p+JSzkOAIB/oM/R5xBArBoMCPib4uJic91115mQkBAjyRQVFZm0tDQTERFhunbtah544AEzf/78BoPEU1NTzZQpUxptq7y83KSkpBin02ni4+PNpk2bTHR0tFm9erV7nZqaGjNnzhwTExNjOnXqZOLi4sydd95pSktLjTHGnDx50kybNs107drVSDLr169vtv4tW7aYa6+91oSHh5vQ0FBz3XXXmR07driXf/3112bevHmmZ8+eJjg42PTt29c8//zz7uW5ublm5MiRJjg42PTo0cP85Cc/MadPn3Yvb2rA/sWOAwDgH+hz9DkEDocxTVxYDaDNfP7554qLi9OOHTs0btw4q8sBAKBN0ecA/0LIA7xg586dOnHihAYPHqyKigo9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DhyopUuXtrjedevWSZLuvfdeD44WABBo/LnPnTsTGBER0WB+165dJUmdO3f2+LgBf0TIA3ygoqJCSUlJys3NVXZ2trZt26bRo0froYce0sMPP9xo/aVLlyovL0/PPvusNm7cqNOnT2vixInat29fs/tZuXKlbrnlFnXq1Elr167V66+/rvT0dJWWlrao3jNnzmjjxo0aNGiQrr322ha9FwAQePy9z02fPl0xMTGaO3euioqKdOLECe3atUtPPfWUpk+froSEhFYdP+B3DIA2kZqaakJDQy+4bO7cucbhcJiCgoIG8++++24TFBRkSkpKjDHGFBYWGkkmPj7enDp1yr3ev/71LxMeHm6+//3vu+etWrXKSDIVFRXGGGO++uorExoaasaPH2/q6+tbdSxbtmwxksyyZctatR0AgH209z5XWlpqRo4caSS5X3feeWeDOgC74Ewe4AM7d+7Ud7/7XQ0dOrTB/LS0NNXX1ze6M9n06dMbDDK/7LLLlJKSol27djW5j927d6uurk7p6elyOBytqnfdunVyOp2aMWNGq7YDAAgM/t7njh07pltvvVUul0t//OMftXv3bj3zzDPKycnRtGnTVF9f36LtAf6OG68APvDll19q2LBhjebHxMS4l5+vR48ejdbt0aOH6urq5HK55HQ6Gy0/duyYJCk2NrZVtZaXl+utt97SD3/4Q11++eWt2hYAIDD4e5974oknVFxcrH/+85/q1q2bJOnGG29Unz599L3vfU8vv/yybr/99hZvF/BXnMkDfODyyy9XRUVFo/nl5eWSpKioqAbzL/RMoMrKSoWGhl6w8UlyN63PP/+8VbW+8MILOnv2LDdcAQBcMn/vcwUFBYqPj3dv45yRI0dKkj755JMWbxPwZ4Q8wAfGjRungoICffrppw3mb9y4UUFBQUpOTm4w/+WXX9bp06fd01999ZXeeuutRuudb/To0QoNDdXq1atbVevzzz+v3r17a9y4ca3aDgAgcPh7n4uJidHhw4f1xRdfNJj/wQcfSGr9VTCAvyHkAT7wyCOPqFu3bpo4caKef/55vf3228rIyNC6des0d+5cxcfHN1i/vr5eEydO1LZt2/TKK69o7NixOnnypLKysprcR9euXfWrX/1K77zzjiZOnKiXXnpJu3bt0po1azRv3rxLqjMvL0+HDh3SPffc0+pxfQCAwOHv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YSOPiIiIiIjIipj1xit1hjZf6gRERERERES1glfyiIiI7pNOp0P79u2hUCgMjwsiIiKSCht5RERE9+nVV1+FRqOROgYREREANvKIiIjuy7fffotdu3Zh8eLFUkchIiICwDF5RERENfbXX39h7NixiI+PR6NGjUzaRqfTQafTGeYLCgrMFY+IiOopXskjIiKqASEERo0ahRdeeAFhYWEmb7dgwQI4OzsbJh8fHzOmJCKi+oiNPCIiojtotVooFIoqp+TkZLz//vsoKCjAjBkz7un1Z8yYgfz8fMN09uxZMx0JERHVV+yuSUREdIeJEydi2LBhVZbx9/fHW2+9hV9++QVKpdJoXVhYGIYPH46NGzdWuK1SqSy3DRERUW1iI4+IiOgOarUaarW62nLvvfce3nrrLcN8Tk4OHnvsMWzduhUPPfSQOSMSERFVqU428s4s7Cd1BCIiqud8fX2N5hs3bgwACAgIgLe3d41fl3UcERHdL47JIyIiIiIisiJ18koeERGR3Pj7+0MIIXUMIiIiXskjIiIiIiKyJmzkERERERERWRFZd9cs6/ZSUFAgcRIiIpKjsvqhLneTZF1HRESVqWk9J+tGXmFhIQDAx8dH4iRERCRnhYWFcHZ2ljpGjbCuIyKi6txrPacQMv75U6/XIycnB46OjlAoFJWWKygogI+PD86ePQsnJycLJqyenLMB8s4n52yAvPMxW83JOR+zlSeEQGFhITQaDWxs6uYIhKrqOjn/zSvCvOZTl7ICzGtudSlvXcoKyC9vTes5WV/Js7GxuadnDTk5Ocnij1EROWcD5J1PztkAeedjtpqTcz5mM1ZXr+CVMaWuk/PfvCLMaz51KSvAvOZWl/LWpayAvPLWpJ6rmz97EhERERERUYXYyCMiIiIiIrIitlqtVit1iNpga2uLiIgINGggvx6ocs4GyDufnLMB8s7HbDUn53zMVv/UtfeVec2nLmUFmNfc6lLeupQVqHt5KyLrG68QERERERHRvWF3TSIiIiIiIivCRh4REREREZEVYSOPiIiIiIjIilhNI2/BggVQKBSYMmWK1FEMzp8/j2effRaurq5o1KgR2rdvj5SUFKljAQD8/f2hUCjKTRMmTJA6Gm7duoXXX38dzZs3h0qlQosWLTB37lzo9XqpowEACgsLMWXKFPj5+UGlUqFLly44fPiwJFl++OEH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\n",
      "text/plain": [
       "<Figure size 900x900 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "topic_number = 0\n",
    "fig, ax = plt.subplots(4,2, figsize=(9,9), sharey=False)\n",
    "for i in range(4):\n",
    "    for j in range(2):\n",
    "        topic_number += 1\n",
    "        results[results['topic'] == topic_number]\\\n",
    "            .groupby('target_score')['diff']\\\n",
    "            .median()\\\n",
    "            .plot.bar(ax=ax[i, j], rot=0)\n",
    "        ax[i,j].set_title('Topic %i' % topic_number)\n",
    "ax[3,0].locator_params(nbins=10)\n",
    "ax[3,1].locator_params(nbins=10)\n",
    "plt.suptitle('Scaled prediction errors')\n",
    "plt.tight_layout(rect=[0, 0.03, 1, 0.95])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>topic</th>\n",
       "      <th>target_score</th>\n",
       "      <th>scaled</th>\n",
       "      <th>y_pred</th>\n",
       "      <th>diff</th>\n",
       "      <th>pred</th>\n",
       "      <th>y_true</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1751</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.611197</td>\n",
       "      <td>0.388803</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1075</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>10.0</td>\n",
       "      <td>8.725337</td>\n",
       "      <td>1.274663</td>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>383</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.747321</td>\n",
       "      <td>0.252679</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>706</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.470211</td>\n",
       "      <td>0.529789</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>831</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.475881</td>\n",
       "      <td>0.524119</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   index  topic  target_score  scaled    y_pred      diff  pred  y_true\n",
       "0   1751      1            10     8.0  7.611197  0.388803    10      10\n",
       "1   1075      1            12    10.0  8.725337  1.274663    11      12\n",
       "2    383      1            10     8.0  7.747321  0.252679    10      10\n",
       "3    706      1            10     8.0  7.470211  0.529789    10      10\n",
       "4    831      1            10     8.0  7.475881  0.524119    10      10"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\" Create list of tuples with min/max target scores sorted by topic number.\n",
    " Performed here on results in case min/max values didn't pass through train_test_split\"\"\"\n",
    "\n",
    "score_df = results.groupby('topic')['target_score'].agg(['min', 'max'])  \n",
    "score_ranges = list(zip(score_df['min'], score_df['max'])) \n",
    "\n",
    "\"\"\"Shrink back to original range by topic number:\"\"\"\n",
    "y_p_df = pd.Series()\n",
    "y_t_df = pd.Series()\n",
    "\n",
    "for topic in range(1,9):\n",
    "    scaler = MinMaxScaler(score_ranges[topic-1])\n",
    "    scaled_pred = results[results.topic == topic]['y_pred'].to_frame()\n",
    "    y_pred_shrunk = scaler.fit_transform(scaled_pred).round(0).astype('int')\n",
    "    scaled_true = results[results.topic == topic]['scaled'].to_frame()\n",
    "    y_true_shrunk = scaler.fit_transform(scaled_true).round(0).astype('int')\n",
    "    y_p_df = y_p_df.append(pd.Series(np.squeeze(np.asarray(y_pred_shrunk))), ignore_index=True)\n",
    "    y_t_df = y_t_df.append(pd.Series(np.squeeze(np.asarray(y_true_shrunk))), ignore_index=True)\n",
    "    \n",
    "# Append to results df\n",
    "results['pred'] = y_p_df\n",
    "results['y_true'] = y_t_df\n",
    "results.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The close agreement between true and predicted essay scores becomes apparent after re-scaling to their original ranges and plotting on a log scale by count."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAHFCAYAAAAZuEjoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XlYVnX+//HXLdzcLCqoiAjikuaCa65pLrhk4ZJbjU2LmqmZd5OmNZM15dJiaZpOYWqTmdNmM6lT2eSWW1+z0KQsSmXGBRVDVEREAfH8/vDnXXegceu5uYHzfFwXV92f+9zv8z4HglfnfM45NsMwDAEAAJRzFXzdAAAAQEkg9AAAAEsg9AAAAEsg9AAAAEsg9AAAAEsg9AAAAEsg9AAAAEsg9AAAAEsg9AAAAEsg9ADFsGTJEtlsNm3fvr3I9/v166e6deu6jdWtW1cjRozwaD1bt27V1KlTlZmZeZWdWs+yZcvUtGlTBQUFyWazKSkpqcjlkpOTNXXqVO3fv79kG7wG8+fP15IlS3zdBlBuEHoAL1mxYoWeeuopjz6zdetWTZs2jdBTTMeOHdO9996r+vXr67PPPtOXX36phg0bFrlscnKypk2bRugBLMzf1w0A5dUNN9zg6xY8lp+fL5vNJn//svGrYc+ePcrPz9c999yjbt26+aSHnJwcBQcH+2TdpY1hGDp37pyCgoJ83QpQJI70AF7y29NbFy5c0LPPPqtGjRopKChIYWFhatGihebNmydJmjp1qh577DFJUr169WSz2WSz2bRx40bX52fOnKnGjRvL4XAoIiJCw4YN06FDh9zWaxiGnn/+edWpU0eBgYFq27at1q5dq7i4OMXFxbmW27hxo2w2m/7xj39o0qRJio6OlsPhUEpKio4dO6Zx48YpNjZWFStWVEREhHr06KEtW7a4rWv//v2y2WyaNWuWXnzxRdWtW1dBQUGKi4tzBZLHH39cUVFRCg0N1aBBg5Senl6s/ffRRx+pY8eOCg4OVqVKlXTzzTfryy+/dL0/YsQIde7cWZI0dOhQ2Ww2t+37tSVLluiOO+6QJHXv3t21by8dRVm7dq0GDBigWrVqKTAwUA0aNNADDzygjIwMtzpTp06VzWbTN998o9tvv11VqlRR/fr1Xe+//vrratiwoRwOh2JjY/Xuu+9qxIgRhU595uXl6dlnn3V9L6tXr6777rtPx44dcy1Tt25d/fDDD9q0aZOr39/W+a1//vOf6tChg0JDQxUcHKzrrrtOI0eOdFsmMzNTkyZN0nXXXef6OerTp49++ukn1zInTpzQuHHjFB0drYCAAF133XV68sknlZub61bLZrPpoYce0oIFC9SkSRM5HA699dZbxd5GSfr8888VFxenatWqKSgoSLVr19aQIUOUk5NzxW0FrkbZ+N85oJQoKCjQ+fPnC40bhvG7n505c6amTp2qv/71r+ratavy8/P1008/uU5ljRo1SidOnNArr7yi5cuXq2bNmpKk2NhYSdKDDz6oRYsW6aGHHlK/fv20f/9+PfXUU9q4caO++eYbhYeHS5KefPJJzZgxQ2PGjNHgwYOVmpqqUaNGKT8/v8hTP5MnT1bHjh21YMECVahQQREREa4/TFOmTFFkZKSys7O1YsUKxcXFaf369YXCRUJCglq0aKGEhATXH9X+/furQ4cOstvtWrx4sQ4cOKBHH31Uo0aN0kcffXTFffXuu+/q7rvvVu/evfXee+8pNzdXM2fOdK2/c+fOeuqpp9S+fXs5nU49//zz6t69uypXrlxkvb59++r555/XE088oYSEBLVu3VqSXIHlv//9rzp27KhRo0YpNDRU+/fv15w5c9S5c2ft2rVLdrvdrd7gwYN15513auzYsTpz5owkadGiRXrggQc0ZMgQvfzyyzp16pSmTZtWKChcuHBBAwYM0JYtW/TnP/9ZnTp10oEDBzRlyhTFxcVp+/btCgoK0ooVK3T77bcrNDRU8+fPlyQ5HI7L7rMvv/xSQ4cO1dChQzV16lQFBgbqwIED+vzzz13LnD59Wp07d9b+/fv1l7/8RR06dFB2drY2b96stLQ0NW7cWOfOnVP37t313//+V9OmTVOLFi20ZcsWzZgxQ0lJSVq1apXbeleuXKktW7bo6aefVmRkpCIiIoq9jfv371ffvn3VpUsXLV68WGFhYTp8+LA+++wz5eXlcQQN5jMA/K4333zTkHTFrzp16rh9pk6dOsbw4cNdr/v162e0atXqiuuZNWuWIcnYt2+f2/iPP/5oSDLGjRvnNv7VV18ZkownnnjCMAzDOHHihOFwOIyhQ4e6Lffll18akoxu3bq5xjZs2GBIMrp27fq723/+/HkjPz/f6NmzpzFo0CDX+L59+wxJRsuWLY2CggLX+Ny5cw1Jxm233eZWZ8KECYYk49SpU5ddV0FBgREVFWU0b97crebp06eNiIgIo1OnToW24Z///OfvbsM///lPQ5KxYcOGKy534cIFIz8/3zhw4IAhyfj3v//tem/KlCmGJOPpp58u1HNkZKTRoUMHt/EDBw4Ydrvd7WfjvffeMyQZH374oduyiYmJhiRj/vz5rrGmTZu6fc+u5KWXXjIkGZmZmZddZvr06YYkY+3atZddZsGCBYYk44MPPnAbf/HFFw1Jxpo1a1xjkozQ0FDjxIkTbssWdxv/9a9/GZKMpKSkYm0jcK04vQV4YOnSpUpMTCz0dek0y5W0b99e3377rcaNG6fVq1crKyur2OvdsGGDJBW6Gqx9+/Zq0qSJ1q9fL0natm2bcnNz9Yc//MFtuRtvvPGyp0aGDBlS5PiCBQvUunVrBQYGyt/fX3a7XevXr9ePP/5YaNk+ffqoQoVffp00adJE0sUjLL92afzgwYOX2VJp9+7dOnLkiO699163mhUrVtSQIUO0bds20099pKena+zYsYqJiXFta506dSSpyO397T7bvXu3jh49Wmi/165dWzfddJPb2CeffKKwsDD1799f58+fd321atVKkZGRrtOZnmrXrp0k6Q9/+IM++OADHT58uNAy//nPf9SwYUP16tXrsnU+//xzhYSE6Pbbb3cbv/Szd+ln7ZIePXqoSpUqbmPF3cZWrVopICBAY8aM0VtvvaX//e9/nm424BFCD+CBJk2aqG3btoW+QkNDf/ezkydP1ksvvaRt27YpPj5e1apVU8+ePS97GfyvHT9+XJJcp7x+LSoqyvX+pX/WqFGj0HJFjV2u5pw5c/Tggw+qQ4cO+vDDD7Vt2zYlJibq1ltv1dmzZwstX7VqVbfXAQEBVxw/d+5ckb38ehsut60XLlzQyZMnL/t5T124cEG9e/fW8uXL9ec//1nr16/X119/rW3btklSkdv729482e8///yzMjMzFRAQILvd7vZ19OjRQvOIiqtr165auXKlzp8/r2HDhqlWrVpq1qyZ3nvvPdcyx44dU61ata5Y5/jx44qMjJTNZnMbj4iIkL+/v2tbLynq+1Tcbaxfv77WrVuniIgIOZ1O1a9fX/Xr13fNcwPMxpweoIT4+/tr4sSJmjhxojIzM7Vu3To98cQTuuWWW5SamnrF+QvVqlWTJKWlpRX6o3XkyBHXfJ5Ly/3888+Fahw9erTIoz2//eMmSW+//bbi4uL02muvuY2fPn36yhtpgl9v628dOXJEFSpUKHRk4Vp8//33+vbbb7VkyRINHz7cNZ6SknLZz/x2n/3efv+18PBwVatWTZ999lmRtStVqlTs3n9rwIABGjBggHJzc7Vt2zbNmDFDd911l+rWrauOHTuqevXqhSa+/1a1atX01VdfyTAMt+1MT0/X+fPnXT9rlxT18+PJNnbp0kVdunRRQUGBtm/frldeeUUTJkxQjRo1dOedd3qy+cDv4kgP4ANhYWG6/fbb5XQ6deLECde9Yy5NVP3t0YUePXpIuhhGfi0xMVE//vijevbsKUnq0KGDHA6Hli1b5rbctm3bdODAgWL3Z7PZCk2a/e6779yunvKWRo0aKTo6Wu+++67bBPEzZ87oww8/dF3R5anL7dtLf7R/u70LFy70qOfIyEh98MEHbuMHDx7U1q1b3cb69eun48ePq6CgoMijho0aNXLruagjTb/H4XCoW7duevHFFyVJO3fulCTFx8drz549bpObf6tnz57Kzs7WypUr3caXLl3qev/3eLKNl/j5+alDhw5KSEiQJH3zzTfF21jAAxzpAUpI//791axZM7Vt21bVq1fXgQMHNHfuXNWpU0fXX3+9JKl58+aSpHnz5mn48OGy2+1q1KiRGjVqpDFjxuiVV15RhQoVFB8f77p6KyYmRo888oiki6eTJk6cqBkzZqhKlSoaNGiQDh06pGnTpqlmzZpuc2SupF+/fnrmmWc0ZcoUdevWTbt379b06dNVr169Iq9eM1OFChU0c+ZM3X333erXr58eeOAB5ebmatasWcrMzNQLL7xwVXWbNWsm6eJVVpUqVVJgYKDq1aunxo0bq379+nr88cdlGIaqVq2qjz/+WGvXrvWo52nTpumBBx7Q7bffrpEjRyozM7PI/X7nnXfqnXfeUZ8+fTR+/Hi1b99edrtdhw4d0oYNGzRgwAANGjRI0sWfh/fff1/Lli3Tddddp8DAQNfPyG89/fTTOnTokHr27KlatWopMzNT8+bNk91ud93DaMKECVq2bJkGDBigxx9/XO3bt9fZs2e1adMm9evXT927d9ewYcOUkJCg4cOHa//+/WrevLm++OILPf/88+rTp88V5wN5uo0LFizQ559/rr59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8eOaPn260tLS1KxZM3366aeqU6fOVa8zISFBCQkJKijw3iHJowf3qvIbNynSluuV+jmGQ0fv/z+CDwDgit566y3df//9+uqrr7R9+3aNGTNGderU0ejRoyVJs2bN0lNPPaW//vWvkqScnBx1795dXbp00ebNm+Xv769nn31Wt956q7777jsFBARo9uzZWrx4sd544w3FxsZq9uzZWrFihXr06OHLTf1dPg89cXFxv5sOx40bp3Hjxpm2TqfTKafTqaysLIWGeiedZ5/8WZG2XG1v/aLC6jQztXbmge/V9pu/6Pi+/5P8z5haW8HVpDAu5QeA8iImJkYvv/yybDabGjVqpF27dunll192hZ4ePXro0UcfdS2/ePFiVahQQX//+99dFw29+eabCgsL08aNG9W7d2/NnTtXkydPdt1UeMGCBVq9enXJb5yHfB56yruwOs3UoGVnU2vuDqyqnB0OxWwYL20wtbRkD5acXxN8AKCcuPHGG92ugu7YsaNmz57tOtvRtm1bt+V37NihlJQUVapUyW383Llz+u9//6tTp04pLS1NHTt2dL3n7++vtm3blvpTXISeMii/YrR65c7Sc7dEKaaqeZPZHJkpF4NUznFCDwBYREhIiNvrCxcuqE2bNnrnnXcKLVu9evWSassrCD1lUJWQAJ2019B9q/MkmXd/iKa2bK1ySOnZuYowrSoAwJe2bdtW6PX1119/2WdZtW7dWsuWLVNERIQqV65c5DI1a9bUtm3b1LVrV0nS+fPntWPHDrVu3drc5k1G6CmDosOCtG5SN9NviHVsT4C0Sco6m0/oAYByIjU1VRMnTtQDDzygb775Rq+88opmz5592eXvvvtuzZo1SwMGDND06dNVq1YtHTx4UMuXL9djjz2mWrVqafz48XrhhRd0/fXXq0mTJpozZ44yMzNLcKuuDqGnjIoOCzL9Pg0pGdzsCgA8lZKeXarXM2zYMJ09e1bt27eXn5+f/vSnP2nMmDGXXT44OFibN2/WX/7yFw0ePFinT59WdHS0evbs6TryM2nSJKWlpWnEiBGqUKGCRo4cqUGDBunUqVNX1WNJsWToKYlL1gEA5VuVkAAF2f00YVnxHoVkhiC7n6qEeHbzQLvdrrlz5+q1114r9N7+/fuL/ExkZKTeeuuty9b09/fX3LlzNXfuXI968TVLhp6SuGQdAFC+eWuqwZWU5mdvlQWWDD0AAJjBG1MN4D2EHgAAyqmNGzf6uoVSpYKvGwAAACgJhB4AAGAJhB4AAGAJhB4AAGAJlgw9CQkJio2NVbt27XzdCgAAKCGWDD1Op1PJyclKTEz0dSsAAKCEcMk6AABXKzNVyjlecusLriaFxZTc+soZQg8AAFcjM1VKaC/l55TcOu3BkvPrEgk+U6dO1cqVK5WUVHKP2fA2Qg8AAFcj5/jFwDP4dSm8offXl7FHWj764npL0dGe/Px82e12X7dRLIQeAACuRXhDKaqVr7so0tKlS/XII4/oyJEjcjgcrvEhQ4YoJCRES5cuLfJzS5Ys0bRp0yRJNptNkvTmm29qxIgRstlseu211/Sf//xH69at06OPPqp69eppwoQJyszMdNVYuXKlBg0aJMMwXGMff/yxpk6dqh9++EFRUVEaPny4nnzySfn7l0wcseREZgAArOCOO+5QQUGBPvroI9dYRkaGPvnkE913332X/dzQoUM1adIkNW3aVGlpaUpLS9PQoUNd70+ZMkUDBgzQrl27NHLkyGL1snr1at1zzz16+OGHlZycrIULF2rJkiV67rnnrn4DPUToAQCgnAoKCtJdd92lN9980zX2zjvvqFatWoqLi7vi5ypWrCh/f39FRkYqMjJSQUG/PFj1rrvu0siRI3XdddepTp06xerlueee0+OPP67hw4fruuuu080336xnnnlGCxcuvOrt8xSntwAAKMdGjx6tdu3a6fDhw4qOjnY7TXW12rZt6/FnduzYocTERLcjOwUFBTp37pxycnIUHBx81f0UlyVDT0JCghISElRQUODrVgAA8KobbrhBLVu21NKlS3XLLbdo165d+vjjj6+pZkhIiNvrChUquM3dkS5OcP61CxcuaNq0aRo8eHCheoGBgdfUT3FZMvQ4nU45nU5lZWUpNDTU1+0AAOBVo0aN0ssvv6zDhw+rV69eion5/au/AgICin1woHr16jp9+rTOnDnjCkS/vdS9devW2r17txo0aOD5BpiEOT0AAJRzd999tw4fPqzXX3+92BOP69atq3379ikpKUkZGRnKzc297LIdOnRQcHCwnnjiCaWkpOjdd9/VkiVL3JZ5+umntXTpUtfVWz/++KOWLVumv/71r9eyaR6x5JEeAABMk7Gn1K+ncuXKGjJkiFatWqWBAwcW6zNDhgzR8uXL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9etnHDx40HdNl0EjR450/X6oXr260bNnT1fgMQz2sTf9NvSwr6/d0KFDjZo1axp2u92IiooyBg8ebPzwww+u90vT72ebYRhGyR9fAgAAKFnM6QEAAJZA6AEAAJZA6AEAAJZA6AEAAJZA6AEAAJZA6AEAAJZA6AEAAJZA6AEAAJZA6AFwVeLi4jRhwgRft+Fm6tSpatWqla/bAFBKEXoA+FReXp6vW/CqgoICXbhwwddtABChB8BVGDFihDZt2qR58+bJZrPJZrNp//79Kigo0P3336969eopKChIjRo10rx58wp9duDAgZoxY4aioqLUsGFDSRefbt23b18FBQWpXr16evfdd1W3bl3NnTvX9dlTp05pzJgxioiIUOXKldWjRw99++23kqQlS5Zo2rRp+vbbb109LVmypMj+N27cqPbt2yskJERhYWG66aabdODAAdf7H330kWjmmj8AAAZuSURBVNq2bavAwECFh4dr8ODBrvdOnjypYcOGqUqVKgoODlZ8fLz27t3ren/JkiUKCwvTJ598otjYWDkcDlftN998U02aNFFgYKAaN26s+fPnX9s3AoBH/H3dAICyZ968edqzZ4+aNWum6dOnS5KqV6+uCxcuqFatWvrggw8UHh6urVu3asyYMapZs6b+8Ic/uD6/fv16Va5cWWvXrtWlx/8NGzZMGRkZ2rhxo+x2uyZOnKj09HTXZwzDUN++fVW1alV9+umnCg0N1cKFC9WzZ0/t2bNHQ4cO1ffff6/PPvtM69atkySFhoYW6v38+fMaOHCgRo8erffee095eXn6+uuvZbPZJEmrVq3S4MGD9eSTT+of//iH8vLytGrVKtfnR4wYob179+qjjz5S5cqV9Ze//EV9+vRRcnKy7Ha7JCknJ0czZszQ3//+d1WrVk0RERF6/fXXNWXKFL366qu64YYbtHPnTo0ePVohISEaPny4yd8hAEXyyWNOAZR5v31a9eWMGzfOGDJkiOv18OHDjRo1ahi5ubmusR9//NGQZCQmJrrG9u7da0gyXn75ZcMwDGP9+vVG5cqVjXPnzrnVr1+/vrFw4cL/187dhES1hnEA/18ajxxCZkwpJhl0YWSB3wvnzKJNI+JqJKHNKBqhoKDQJlTUEVoEha2FhLNyIiHXfhVCZUwqjrgYPJQzpqXgGBGCZqNPm9vhzvXjanqxe+f/273P+/XMWT285z0jIiI+n0/y8/MPzGdtbU0AyNjY2J79mqaJ1+vds88wDAEgr1+/NmPRaFRUVZX+/n4REdF1XQBIMBiMm+twOMTv98fF7t27J5qmHZgvEZ0cnvQQ0Ynq6elBb28vFhYWsLGxga2trV2Xi3Nzc6Eoitmem5uDxWJBUVGRGcvOzkZqaqrZnpqawvr6OtLS0uLW2tjYwPv37w+d37lz51BbW4uysjKUlpbC7Xbj5s2bsNvtAIBgMIi6uro954ZCIVgsFpSUlJixtLQ0XL58GaFQyIwpioK8vDyzvbq6isXFRdy+fTtu7VgstudpFBH9O1j0ENGJ6e/vx507d9Dd3Q1N05CSkoKHDx8iEAjEjTt79mxcW/58xfV3f43v7OzAbrdjbGxs1zibzXakPHVdR3NzMwYHB/H06VO0t7djZGQETqcTqqruO++gPH++HgMAVVXj2j8vMj9+/DiuYAKAM2fOHCl3Ivp1LHqI6JcoioLt7e242MuXL+FyudDY2GjGDnMKk5OTg1gshunpaRQXFwMA3r17hy9fvphjioqKsLKyAovFgqysrEPntJ/CwkIUFhaitbUVmqbB7/fD6XQiLy8Pz58/x61bt3bNuXr1KmKxGAKBAFwuFwBgbW0NhmHgypUr++514cIFZGRkYH5+Hl6v91D5EdHJ49dbRPRLsrKyEAgEEIlEEI1GsbOzg+zsbExOTmJoaAiGYaCjowMTExP/uFZOTg7cbjfq6+vx9u1bTE9Po76+Pu7ExO12Q9M0VFRUYGhoCJFIBOPj42hvb8fk5KSZUzgcRjAYRDQaxbdv33btFQ6H0draijdv3mBhYQHDw8NxRYvP58OTJ0/g8/kQCoUwOzuLBw8eAAAuXboEj8eDuro6vHr1CjMzM6iqqkJGRgY8Hs+Bv7Grqwv37983L4HPzs5C13U8evToSM+diI7hdK8UEdF/1dzcnDidTlFVVQBIOByWzc1Nqa2tFavVKjabTRoaGqSlpSXucnFNTY14PJ5d63369EnKy8slOTlZMjMzxe/3y/nz56Wnp8cc8/XrV2lqapKLFy9KUlKSOBwO8Xq98uHDBxER2dzclMrKSrHZbAJAdF3ftc/KyopUVFSI3W4XRVEkMzNTOjs7ZXt72xzz7NkzKSgoEEVRJD09XW7cuGH2ff78Waqrq8VqtYqqqlJWViaGYZj9uq6L1Wrd85n19fWZ66ampsq1a9dkYGDg8A+diI7lD5F9XlITEZ2ipaUlOBwOjI6O4vr166edDhH9D7DoIaLfwosXL7C+vo7c3FwsLy/j7t27+PjxIwzDMP//hojoOHiRmYh+C9+/f0dbWxvm5+eRkpICl8uFvr4+FjxEdGJ40kNEREQJgV9vERERUUJg0UNEREQJgUUPERERJQQWPURERJQQWPQQERFRQmDRQ0RERAmBRQ8RERElBBY9RERElBBY9BAREVFC+AHo1MQ9+TSOZwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# score histogram\n",
    "\n",
    "results[['pred', 'y_true']].plot.hist(histtype='step', bins=20, logy=True)\n",
    "plt.title('Histogram of target scores')\n",
    "plt.xlabel('target score')\n",
    "plt.ylabel('log count')\n",
    "plt.savefig('image8.png', dpi=300)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Classification accuracy:\n",
    "# print(\"Training accuracy: %.2f%% / Validation accuracy: %.2f%%\" % \n",
    "#       (100*estimator.history['acc'][-1], 100*estimator.history['val_acc'][-1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A note on kappa scores\n",
    "\n",
    "Some previous studies apply the kappa metric directly to the complete set of essays. Due to the differences in scale, essay topics (sets) that have a narrow scoring range will end up with significantly smaller weighted distances and thus artificially high kappa scores. Kappa scores of up to 94.5% have been reported with this metric.\n",
    "\n",
    "Other studies calculate the kappa score for each topic individually and then report the geometric mean.\n",
    "\n",
    "The method most likely used in the original Kaggle competition (there is some doubt whether the published code matches the one actually used), uses the quadratic weighted kappa for each set individually and then calculates the mean of the quadratic weighted kappas after applying Fisher's r-to-z transform, which is approximately a variance-stabilizing transformation. Each set is weighted by a factor of one, except for topic 2 which has two domain raters which are each weighted 0.5. It is not clear why the scores are not weighted by the number of essays in each set, then again, the actual formulas used in the competition have not been published.\n",
    "\n",
    "The kappa scores from the original competition were based on comparison to unpublished test data scores. Since all published work on this data set only used the training data set, kappas cannot be compared directly to competition results.\n",
    "\n",
    "Finally, most published work used a subset of essay sets (topics). Omitting topics is likely going to change kappa scores for better or worse."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Combined essay kappa score: 0.9766\n"
     ]
    }
   ],
   "source": [
    "k = kappa(results.pred, results.target_score, weights='quadratic')\n",
    "print('Combined essay kappa score: {:.4f}'.format(k))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The combined essay topics kappa score is much higher than that obtained from individual topics, however, as noted above, this is deceptive, as shown in a recalculation below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Weighted by topic Kappa score: 69.23%\n"
     ]
    }
   ],
   "source": [
    "qwk = []\n",
    "# weights = []\n",
    "for topic in range(1,9):\n",
    "    qwk.append(\n",
    "            kappa(results[results.topic == topic]['target_score'], \n",
    "                  results[results.topic == topic]['pred'],\n",
    "                    weights='quadratic'))\n",
    "#     weights.append(len(results[results.topic==topic])/X_test.shape[0])    \n",
    "mqwk = mean_quadratic_weighted_kappa(qwk, weights=1)\n",
    "print('Weighted by topic Kappa score: {:.2f}%'.format(mqwk * 100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.783132530120482,\n",
       " 0.5544310343790779,\n",
       " 0.6386302738543985,\n",
       " 0.694477443723537,\n",
       " 0.7789994830397264,\n",
       " 0.700802241181714,\n",
       " 0.7542313385262339,\n",
       " 0.5608552976400247]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qwk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Weighted by topic Kappa score: 0.7612\n"
     ]
    }
   ],
   "source": [
    "# kappa for two human raters\n",
    "qwk = []\n",
    "# weights = []\n",
    "for topic in range(1,9):\n",
    "    qwk.append(\n",
    "            kappa(training_set[training_set.topic == topic]['rater1_domain1'], \n",
    "                  training_set[training_set.topic == topic]['rater2_domain1'],\n",
    "                    weights='quadratic'))\n",
    "#     weights.append(len(results[results.topic==topic])/X_test.shape[0])    \n",
    "mqwk = mean_quadratic_weighted_kappa(qwk, weights=1)\n",
    "print('Weighted by topic Kappa score: {:.4f}'.format(mqwk))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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PNZf/vIXXbx48YoxrrvuOkVFRemtt95STk5OieVK2p969OghLy8v/fe//y22je3bt5cktWzZUqGhoXr//fcdRk/68ccftXXr1lK3hbNxilu/V155RTfeeGOx+0FJ+0rhcMienp72sufOndPy5cuLjTN06FDVrl1bjz32mPbv36+RI0eWuk6XstlsatOmjV577TXVr1/f3o6ePXtKUpGk/FJW7MPu2r4Aqj6uVABXsd69e6tVq1Zq3769goKC9OOPP2revHmKiIhQixYtJBX8AipJr7/+ugYOHKhatWqpZcuWatmypYYNG6b58+fLw8NDPXv21OHDhzVx4kQ1a9ZMzz33nKSC243Gjh2rmTNnqkGDBnrggQf0008/afLkyQoNDXV47uFKevXqpalTp2rSpEnq0qWL9u/frylTpigyMrLUE96yWLx4sTZu3Kh7771X4eHhOn/+vN566y1JUrdu3UpcztntUR61a9fWnDlzdPr0ad1yyy3aunWrpk2bpp49ezr17MwjjzyilStX6p577tHo0aPVoUMH1apVSz/99JM2bdqkPn366IEHHlB0dLT69++vefPmqVatWurWrZv+/e9/649//KP8/f1LjfPmm2+qd+/e6tSpk5577jmFh4crNTVV69evtycqJe1PzZs315QpUzRhwgQdOnRId999txo0aKBffvlFO3fulJ+fnyZPniwPDw9NnTpVQ4cO1QMPPKAnn3xSmZmZio+Pd+r2J2fjfPfddxo5cqQefPBBtWjRQrVr19bGjRv13Xff6aWXXpLk3L5y7733au7cuerXr5+GDRum48eP649//GORBLlQ/fr19fjjj2vRokWKiIhQ7969S12ntWvXauHChbr//vt1zTXXyBijjz/+WJmZmbrrrrskFVxRGTBggKZNm6ZffvlFvXr1kre3t7799lv5+vrq2WeftWQftnL7AqhmKvlBcQDlVDj6065du4r9/t577y119Kc5c+aYzp07m0aNGtmHLR0yZIg5fPiww3Ljx483YWFhxsPDw2HEn7y8PPOHP/zBXHfddaZWrVqmUaNGpn///kWGSM3PzzfTpk0zTZs2NbVr1zatW7c2a9euNW3atHEYualwRKG//vWvRdYnJyfH/P73vzdNmjQxderUMe3atTOrV682AwcOdFjPwtGfZs+e7bB8SXVfvh23bdtmHnjgARMR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tKleffVV7d69W7t379add96pPn36lPlEzFm7du3SkiVL1Lp1a7fUHxMTo7S0NPv0/fffW1r/yZMndeutt6pWrVr6/PPP9Z///Edz5syx9K2/u3btcliHhIQESdKDDz5oWYw//OEPWrx4sRYsWKDk5GTNmjVLs2fP1vz58y2LIUlDhw5VQkKCli9fru+//17du3dXt27d9PPPP5ervjNnzqhNmzZasGBBsd/PmjVLc+fO1YIFC7Rr1y6FhITorrvuUnZ2tmUxzpw5o1tvvVWvvvpqudahtBhnz57VN998o4kTJ+qbb77Rxx9/rAMHDui+++4rdzz8T2n/vlVRRRwL3KGijy/u4O5jltXcfQx0h4o4rgJOMVeRY8eOGUkmMTHRrXEaNGhg/vznP1teb3Z2tmnRooVJSEgwXbp0MaNHj7a0/kmTJpk2bdpYWuflXnzxRXPbbbe5NcblRo8ebaKiokx+fr5ldd57771m8ODBDvP69u1r+vfvb1mMs2fPGk9PT7N27VqH+W3atDETJkxwuX5J5pNPPrF/zs/PNyEhIebVV1+1zzt//rwJCAgwixcvtiTGpVJSUowk8+2335arbmdiFNq5c6eRZH788UeXYsGRM9u+KqqoY4E7uOv44g7uPmZZrSKOge5QGcdVoDg1+krF5U6dOiVJatiwoVvqz8vL0wcffKAzZ84oNjbW8vpHjBihe++9V926dbO87kIHDx5UWFiYIiMj9cgjj+jQoUOW1r9mzRq1b99eDz74oBo3bqybbrpJS5cutTTGpS5cuKAVK1Zo8ODBstlsltV722236csvv9SBAwckSf/617/01Vdf6Z577rEsxsWLF5WXl6c6deo4zPfx8dFXX31lWZxCKSkpSk9PV/fu3e3zvL291aVLF23dutXyeBXp1KlTstls/HIHSe4/FriDu48v7lARxyyrufsY6A4VfVwFSnLVvG7RGKOxY8fqtttuU6tWrSyt+/vvv1dsbKzOnz+vunXr6pNPPtENN9xgaYwPPvhAe/bs0e7duy2t91IdO3bUe++9p+uuu06//PKLpk2bps6dO2vv3r0KDAy0JMahQ4e0aNEijR07Vi+//LJ27typUaNGydvbW48//rglMS61evVqZWZmatCgQZbW++KLL+rUqVO6/vrr5enpqby8PE2fPl2PPvqoZTHq1aun2NhYTZ06VdHR0QoODtb777+vHTt2qEWLFpbFKZSeni5JCg4OdpgfHBysH3/80fJ4FeX8+fN66aWX1K9fP/n7+1d2c1DJ3HkscIeKOL64Q0Ucs6xWEcdAd6jo4ypQkqsmqRg5cqS+++47t/zC27JlSyUlJSkzM1N/+9vfNHDgQCUmJlrW8R85ckSjR4/Whg0bivxqbaWePXva///GG29UbGysoqKi9O6772rs2LGWxMjPz1f79u01Y8YMSdJNN92kvXv3atGiRW7p/JYtW6aePXsqLCzM0no//PBDrVixQqtWrVJMTIySkpI0ZswYhYWFaeDAgZbFWb58uQYPHqwmTZrI09NT7dq1U79+/fTNN99YFuNyl1/RMcZYepWnIuXm5uqRRx5Rfn6+Fi5cWNnNQRXgzmOBO7j7+OIOFXXMslpFHAPdoaKPq0BJrorbn5599lmtWbNGmzZtUtOmTS2vv3bt2rr22mvVvn17zZw5U23atNHrr79uWf179uzRsWPHdPPNN8vLy0teXl5KTEzUG2+8IS8vL+Xl5VkW61J+fn668cYbdfDgQcvqDA0NLXIwjI6OVmpqqmUxCv3444/64osvNHToUMvrHjdunF566SU98sgjuvHGGzVgwAA999xzmjlzpqVxoqKilJiYqNOnT+vIkSPauXOncnNzFRkZaWkcSfZRTgqvWBQ6duxYkasX1UFubq4eeughpaSkKCEhgasUcPuxwB3cfXxxh8o6ZlnNHcdAd6jI4ypwJTU6qTDGaOTIkfr444+1ceNGt5yIlRQ3JyfHsvq6du2q77//XklJSfapffv2euyxx5SUlCRPT0/LYl0qJydHycnJCg0NtazOW2+9tchQjgcOHFBERIRlMQq9/fbbaty4se69917L6z579qw8PBz/fDw9PS0fUraQn5+fQkNDdfLkSa1fv159+vSxPEZkZKRCQkLso2VJBc+kJCYmqnPnzpbHc6fChOLgwYP64osvqvStC3C/yjoWuIPVxxd3qKxjltXccQx0h4o8rgJXUqNvfxoxYoRWrVqlv//976pXr579F9iAgAD5+PhYEuPll19Wz5491axZM2VnZ+uDDz7Q5s2btW7dOkvqlwrurb/83l8/Pz8FBgZaek/w73//e/Xu3Vvh4eE6duyYpk2bpqysLEtv53nuuefUuXNnzZgxQw899JB27typJUuWaMmSJZbFkAou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aSN/f3917txZL774ogzDsO9z7jak+fPnKz09XbGxsWrRooWuvfZa5eTkOByvvkv6H330kZKTkxUSEqKgoCB16dJFc+fO9cgYAcBZ3pwr33rrLR08eFAPP/wwBQVwCaCogNcpKSmR1WrV5s2blZGRoQ8//FA33nijpkyZomnTptXaf+7cucrJydHChQv1xhtv6MyZMxo4cKDy8/PP28+iRYs0ePBgNWvWTEuXLtW6deuUmpqqoqKiC4rzqaeeUvPmzRUYGKg+ffro448/vqjxAsDF8PZcmZubK0k6deqUrFarmjVrprCwMI0aNUo//PDDxQ8cgHcyABOMGTPGCAoKqnPb1KlTDYvFYhQUFDi033333UaTJk2MwsJCwzAMw2azGZKM9u3bG6dPn7bvd+jQISMkJMQYNGiQvW3x4sWGJKOkpMQwDMM4fPiwERQUZPTv39+orq5uUOzffvutcd999xnvvfee8emnnxqZmZlGUlKSIcl48803G3QsADgfX86Vffr0MZo0aWKEhoYajz32mLFp0ybjpZdeMlq1amUkJCQYp06datDxAHg3rlTA62zcuFFXX321unXr5tA+duxYVVdX13rryR133KFmzZrZ11u3bq2UlBRt2rSp3j5yc3NVUVGh1NTUBl+Wb9++vV5++WXdfvvtuv766zVy5Eht2bJFXbp00UMPPeRw2wEAuIu358rq6mpVV1dr7NixmjlzppKTk5WamqqXX35ZNptN7777boOOB8C7UVTA6/z4449q27ZtrfaYmBj79p+Kjo6utW90dLQqKipUWVlZZx8HDx6UJMXGxjobriTJ399fd9xxh0pLS/Xtt9+65JgAcD7enivPvUFq4MCBDu0pKSmSpM8//7zBxwTgvSgq4HXCw8NVUlJSq33//v2SpIiICIf2ut6nXlpaqqCgIPn7+9fZR5s2bSRJ+/btczZcu3NXKJo04X8rAO7n7bmya9eu591OrgQaF/6Phtfp16+fCgoKar3H/I033lCTJk2UnJzs0P7uu+/qzJkz9vXDhw/r448/rrXfT914440KCgrSyy+/7JKYT506pXfffVcxMTFq166dS44JAOfj7bny9ttvl6RaL7H461//Kqn263MB+DbmqYDXeeihh7Rq1SoNHDhQTz/9tC677DKtW7dOy5YtU1pamtq3b++wf3V1tQYOHKgpU6bozJkz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woUL9cYbb+jMmTMaOHCg8vPzz9vPokWLNHjwYDVr1kxLly7VunXrlJqaqqKiogbFe/bsWb3xxhtKTExUz549G/RZALgY3p4n77jjDsXExGjq1KnavXu3jh8/rk2bNum5557THXfcofj4eKfGD8ALGYAJxowZYwQFBdW5berUqYbFYjEKCgoc2u+++26jSZMmRmFhoWEYhmGz2QxJRvv27Y3Tp0/b9zt06JAREhJiDBo0yN62ePFiQ5JRUlJiGIZhHD582AgKCjL69+9vVFdXOzWWNWvWGJKMF154wanjAMBP+XqeLCoqMq655hpDkn0ZOXKkQxwAGg+uVMDrbNy4UVdffbW6devm0D527FhVV1fXevPJHXfc4fBQYevWrZWSkqJNmzbV20dubq4qKiqUmpoqi8XiVLzLli2Tv7+/Ro8e7dRxAOBCeXuePHjwoIYMGaLKykq99dZbys3N1YIFC5Sdna3bb79d1dXVDToeAO/Hg9rwOj/++KOuuuqqWu0xMTH27T8VHR1da9/o6GhVVFSosrJS/v7+tbYfPHhQkhQbG+tUrPv379fHH3+s3/72twoPD3fqWABwobw9T86cOVN79uzRd999pzZt2kiSbrjhBl1xxRW65ZZb9O677+rOO+9s8HEBeC+uVMDrhIeHq6SkpFb7/v37JUkREREO7XW9U720tFRBQUF1nigl2U9y+/btcyrWFStWqKqqige0AXiUt+fJgoICtW/f3n6Mc6655hpJ0s6dOxt8TADejaICXqdfv34qKCjQV1995dD+xhtvqEmTJkpOTnZof/fdd3XmzBn7+uHDh/Xxxx/X2u+nbrzxRgUFBenll192KtbXXntNl19+ufr16+fUcQCgIbw9T8bExOjbb7/VDz/84NC+detWSc5fJQbgfSgq4HUeeughtWnTRgMHDtRrr72m9evXa+LEiVq2bJmmTp2q9u3bO+xfXV2tgQMH6sMPP9R7772n3/zmNzp16pTS09Pr7aNVq1Z69tlntWHDBg0cOFDvvPOONm3apCVLluiPf/zjBcWZk5OjvXv3aty4cU4/lwEADeHteXLSpEk6e/as+vfvr8zMTG3atEnz5s3T3Xffrcsuu4xbn4BGiGcq4HXatm2rrVu3avr06XrooYd07NgxXXHFFZo3b54mT55ca/9p06aprKxMqampKisrU9euXZWVlaWkpKTz9pOamqrY2FjNmTNH48aNk2EYio+P1/jx4y8ozmXLlqlJkya6++67L2qcAHCxvD1P9u7dW3l5eZoxY4YeffRR/fjjj7rssst0xx136E9/+pN9vgoAjYfFMH4ySw7gQ3bv3q2EhAQtWLBAkyZNMjscAPA65EkAnsLtTwAAAACcQlEBAAAAwCnc/gQAAADAKVypAAAAAOAUigoAAAAATqGoAAAAAOAUn5ynorq6Wvv371dwcDCTjgFwimEYOnbsmGJiYtSkSeP6nYVcCcBVGnOuhGv4ZFGxf/9+xcXFmR0GgEakuLhYsbGxHutv8eLFWrx4sb799ltJUpcuXfTnP/9ZKSkpkqTk5GTl5OQ4fObOO+/U6tWrL7gPciUAV/N0roTv8MmiIjg4WFLNX+yQkBCTowHgy44ePaq4uDh7XvGU2NhYzZ49Wx06dJAkrVixQkOHDtUXX3yhLl26SJImTJigp59+2v6ZgICABvVBrgTgKheaK6uqqnTmzBkPRQV3a9asmfz8/C5oX58sKs5dxg8JCeFECcAlPH170ODBgx3WZ86cqcWLF2vbtm32oiIwMFDR0dEX3Qe5EoCr1ZcrDcNQaWmpjhw54uGI4G6tWrVSdHT0L54nfbKoAIDGpKqqSu+++64qKipktVrt7StXrlRmZqaioqKUkpKiJ5980uNXVADgQpwrKCIjIxUYGMhzXI2AYRg6ceKEDhw4IElq27btefenqAAkFRVJZWV1b4uIkNq182w8uDR8+eWXslqtOnXqlFq2bKk1a9aoc+fOkqSRI0cqPj5e0dHR2rlzp6ZPn67/+7//U3Z2dr3Hq6ysVGVlpX396NGjbh8DLj0/z5fkSFRVVdkLivDwcLPDgQudu+32wIEDioyMPO+tUG5/fD8jI0MWi0VTp061t1VWVuqBBx5QRESEgoKCNGTIEO3bt8/doQB1KiqSEhKkHj3qXhISavYBXK1Tp04qKCjQtm3b9P/+3//TmDFjtGvXLkk1z1P0799fiYmJ+v3vf6/33ntPn3zyiT7//PN6j5eRkaHQ0FD7wkPacLW68iU5EueeoQgMDDQ5ErjDuT/XX3pWxq1Fxfbt27V06VJ17drVoX3q1Klas2aNVq9erS1btuj48eMaNGiQqqqq3BkOUKeyMunECSkzU8rPd1wyM2u21XcVA3BG8+bN1aFDByUlJSkjI0PdunXT/Pnz69y3e/fuatasmb7++ut6jzd9+nSVl5fbl+LiYneFjkvUz/MlORI/xS1PjdOF/rm67fan48ePa+TIkXrllVc0Y8YMe3t5ebmWLVumN998U/3795ckZWZmKi4uTp988okGDhzorpCA80pIkLp3NzsKXMoMw3C4femnvvrqK505c+a897T6+/vL39/fXeEBduRLAD/ntqJi4sSJuvXWW9W/f3+HoiI/P19nzpzRgAED7G0xMTFKTExUXl4eRQWAS8Jjjz2mlJQUxcXF6dixY1q9erU2b96srKwsffPNN1q5cqVuueUWRUREaNeuXZo2bZquvvpqXXfddWaHDgAX5HzPK7pDY3q+Z+zYsTpy5IjWrl1rdigXzC1FxerVq5Wfn68dO3bU2lZaWqrmzZurdevWDu1RUVEqLS2t83g8fIhLGk+RN0o//PCDRo8erZKSEoWGhqpr167KysrSTTfdpOLiYv3973/X/Pnzdfz4ccXFxenWW2/Vk08+ecHvCwcAM517/ubECc/1GRgo2WyeOy2mp6dr7dq1Kigo8EyHXs7lRUVxcbGmTJmiDRs2qEWLFhf8OcMw6r1nKyMjQ0899ZSrQgR8xy9lZU9nULjMsmXL6t0WFxdXazZtAPAlP33+JiHB/f3ZbNKoUTX9cko0h8uLivz8fB04cEA9evSwt1VVVSk3N1cLFy7U+vXrdfr0aR0+fNjhasWBAwfUu3fvOo85ffp0paWl2dfPzeoINHrny8pkUACAl/P252+ysrI0Y8YM7dy5U35+frJarZo/f76uuOIKSdK+ffv04IMPasOGDaqsrFRCQoJeeukl2Ww2+w/e534UX758uZKTkxUfH68vvvhCV111lSTpyJEjat26tTZt2qTk5GRVVVXp3nvv1caNG1VaWqp27dopNTVVU6ZMMedLcBGXFxX9+vXTl19+6dB2991369e//rUeeeQRxcXFqVmzZsrOztbvfvc7SVJJSYl27typZ599ts5j8vAhLnnenpUBAPBBFRUVSktL05VXXqmKigr9+c9/1m233aaCggKdOHFCffr00WWXXaZ169YpOjpan3/+uaqrq3XnnXdq586dysrK0ieffCJJCg0N1Q8//PCLfVZXVys2NlbvvPOOIiIilJeXp3vvvVdt27a1/9vYF7m8qAgODlZiYqJDW1BQkMLDw+3t48eP17Rp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\n",
      "text/plain": [
       "<Figure size 800x800 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "topic_number = 0\n",
    "fig, ax = plt.subplots(4,2, figsize=(8,8), sharey=False)\n",
    "for i in range(4):\n",
    "    for j in range(2):\n",
    "        topic_number += 1\n",
    "        results[results['topic'] == topic_number]\\\n",
    "            .groupby('y_true')['y_true']\\\n",
    "            .agg('count')\\\n",
    "            .plot.bar(ax=ax[i, j], rot=0, fill=False, ec='b', label='actual')\n",
    "        results[results['topic'] == topic_number]\\\n",
    "            .groupby('pred')['pred']\\\n",
    "            .agg('count')\\\n",
    "            .plot.bar(ax=ax[i, j], rot=0, fill=False, ec='r', label='prediction')\n",
    "        ax[i,j].set_title('Topic %i' % topic_number)\n",
    "ax[3,0].locator_params(nbins=10)\n",
    "ax[3,1].locator_params(nbins=10)\n",
    "plt.suptitle('Histograms of predicted essay scores')\n",
    "plt.legend(bbox_to_anchor=(1.0, 1.05))\n",
    "plt.tight_layout(rect=[0, 0.03, 1, 0.95])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAHFCAYAAADhWLMfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xt8lOWd///3PeeZHEkgCYdwUFCLAqJoFbsVFEFUrLqKFrqKuna/rlgttW7R3VatSmut2p9urbv1UK3W1vWEh4qigFprVRRFUQQF5ZAQCOScOd+/P+6ZyQwkHDKT3EN4PR+P+zGZO/fMXDMg8/bzue7rNkzTNAUAANAHOOweAAAAQK4QbAAAQJ9BsAEAAH0GwQYAAPQZBBsAANBnEGwAAECfQbABAAB9BsEGAAD0GQQbAADQZxBsAOSN9evXyzAMPfTQQ/v82KVLl8owDC1dunSvjtvd65x00kkyDEPDhw/P2N/a2qpf/vKXGjdunIqLi1VUVKSDDz5YM2fO1LJlyzp9jc627rw/AHvHZfcAAMAORUVFuv/++zVnzpyM/evWrdPSpUtVXFycsT8Wi2nq1KlauXKlfvzjH+vYY4+VJK1Zs0bPPfec3njjDZ144okZj7n11ls1efLkXV774IMPzu2bAZBCsAFwQDr//PP1+9//XmvWrNGoUaNS+x944AENHjxYY8aM0apVq1L7X3/9db311lt64IEHdPHFF6f2T5s2TXPnzlU8Ht/lNUaNGqXjjjuuZ98IgAy0ogCk3HDDDTIMQx999JHOO+88lZSUqKysTPPmzVM0GtXq1at16qmnqqioSMOHD9dtt922y3N8/fXX+t73vqeKigp5vV594xvf0K9//etdvvg3b96smTNnqqioSCUlJTr//PNVW1vb6bjee+89nXnmmSorK5PP59P48eP1l7/8Jav3esopp6i6uloPPPBAal88Htcf/vAHXXTRRXI4Mv95rK+vlyQNHDiw0+fb+XgA9uC/RAC7mDlzpsaNG6cnn3xSl112me6880798Ic/1FlnnaXTTz9dTz/9tE466ST9x3/8h5566qnU47Zu3aqJEyfq5Zdf1s9//nMtXLhQU6ZM0TXXXKO5c+emjmtvb9eUKVP08ssva8GCBXriiSdUVVWl888/f5exLFmyRCeccIIaGhr0u9/9Ts8++6yOPPJInX/++VnNVXE4HJozZ44efvhhxWIxSdLLL7+sjRs3ZlRkkiZMmCC3262rrrpKjz76qGpqavb4GvF4XNFodJcNQA8yASDhZz/7mSnJ/PWvf52x/8gjjzQlmU899VRqXyQSMQcMGGCec845qX0/+clPTEnmP/7xj4zHX3755aZhGObq1atN0zTNe++915RkPvvssxnHXXbZZaYk88EHH0ztO+yww8zx48ebkUgk49gzzjjDHDhwoBmLxUzTNM0lS5aYkswlS5bs9j0mj3viiSfML7/80jQMw3z++edN0zTN8847z5w0aZJpmqZ5+umnm8OGDct47P33328WFhaakkxJ5sCBA80LL7zQfP311zt9ja62DRs27HaMALqPig2AXZxxxhkZ97/xjW/IMAxNnz49tc/lcmnkyJH66quvUvtee+01jR49OjWxNmnOnDkyTVOvvfaaJKsKU1RUpDPPPDPjuFmzZmXcX7t2rT777DPNnj1bkjKqHqeddppqamq0evXqbr/PESNGaNKkSXrggQdUX1+vZ599VpdcckmXx19yySXauHGjHnvsMf3gBz9QdXW1/vjHP+rEE0/Ur371q12O/+Uvf6l33313l62ysrLbYwawe0weBrCLsrKyjPsej0eBQEA+n2+X/U1NTan79fX1u5wiLUmDBg1K/T5529mXe1VVVcb9LVu2SJKuueYaXXPNNZ2Oddu2bXt4N7t36aWX6uKLL9Ydd9whv9+vc889d7fHl5SU6Lvf/a6++93vSpI++eQTTZkyRddff70uu+wylZaWpo496KCDNGHChKzGB2DfULEBkDPl5eWdzj3ZvHmzJKl///6p45KhJd3Ok4eTx8+fP7/Tyse7776rI488Mqsxn3POOQoEAvrFL36hCy64QH6/f58ef/jhh+uCCy5QJBLR559/ntVYAGSPYAMgZ04++WStWrVK77//fsb+hx9+WIZhpNZ0mTx5spqbm7Vw4cKM4x577LGM+4ceeqhGjRqlDz/8UBMmTOh0KyoqymrMfr9fP/3pTzVjxgxdfvnlXR5XX1+vcDjc6e8+++wzSR2VKQD2oRUFIGd++MMf6uGHH9bpp5+um266ScOGDdMLL7yg3/72t7r88st1yCGHSJIuvPBC3Xnnnbrwwgt1yy23aNSoUXrxxRe1aNGiXZ7zvvvu0/Tp0zVt2jTN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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAHFCAYAAADhWLMfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmcVNWd///3rb2rl+qFXmhoFtkUBURxAZ0EXEAR3GLUgInMZGImUTMGjZHk95uoUcmQGM1oNJlJItFINMaNSKIBRdQoUVkURUEUZOtmaei9a7/fP25V9QLN0lX0LZrX8/G4j+q6fev26QKpt5/PuecapmmaAgAA6AUcdg8AAAAgUwg2AACg1yDYAACAXoNgAwAAeg2CDQAA6DUINgAAoNcg2AAAgF6DYAMAAHoNgg0AAOg1CDYAssqmTZtkGIbmz59/2K999dVXZRiGXn311YwcB+DoQ7ABAAC9BsEGAAD0GgQbAB3cfvvtMgxD77//vr785S8rEAiouLhYs2fPVjQa1bp163TBBRcoPz9fgwYN0rx58/Y5x+bNm3XNNdeorKxMXq9XJ5xwgu69917F4/EOx23fvl1XXnml8vPzFQgEdNVVV6mmpma/43r33Xd18cUXq7i4WD6fT2PHjtWf/vSnjP7uCxcu1Pjx4+X3+5Wfn6/zzz9fb731Vodjdu3apeuuu05VVVXyer0qLS3VWWedpSVLlqSOWbVqlaZNm5b6/SsrK3XRRRdp69atGR0vgH257B4AgOx05ZVX6pprrtE3v/lNLV68WPPmzVMkEtGSJUv07W9/W7fccosWLFig73//+xo6dKguv/xySdYH/4QJExQOh/XjH/9YgwYN0gsvvKBbbrlFn376qR566CFJUmtrq8477zxt375dc+fO1fDhw7Vo0SJdddVV+4xl6dKluuCCC3TGGWfoV7/6lQKBgJ544gldddVVamlp0axZs9L+fRcsWKCZM2dq8uTJ+uMf/6hQKKR58+Zp4sSJevnll3X22WdLkr761a9q5cqVuvvuuzV8+HDV1dVp5cqVqq2tlSQ1Nzfr/PPP1+DBg/XLX/5S5eXlqqmp0dKlS9XY2Jj2OAEchAkA7fzoRz8yJZn33ntvh/0nn3yyKcl85plnUvsikYhZWlpqXn755al9t912mynJ/Oc//9nh9d/61rdMwzDMdevWmaZpmg8//LApyXz++ec7HPeNb3zDlGQ+8sgjqX3HH3+8OXbsWDMSiXQ4dtq0aWbfvn3NWCxmmqZpLl261JRkLl269IC/Y+fjYrGYWVlZaY4aNSp1LtM0zcbGRrOsrMycMGFCal9eXp550003dXnud99915RkPvfccwccA4Ajg1YUgP2aNm1ah+cnnHCCDMPQhRdemNrncrk0dOhQff7556l9r7zyikaOHKnTTz+9w+tnzZol0zT1yiuvSLKqMPn5+br44os7HDdjxowOzzds2KCPP/5YM2fOlCRFo9HUNnXqVFVXV2vdunVp/a7r1q3T9u3b9dWvflUOR9s/i3l5efrSl76k5cuXq6WlRZJ0+umna/78+brrrru0fPlyRSKRDucaOnSoioqK9P3vf1+/+tWvtHbt2rTGBuDwEGwA7FdxcXGH5x6PR36/Xz6fb5/9wWAw9by2tlZ9+/bd53yVlZWp7ycfy8vL9zmuoqKiw/MdO3ZIkm655Ra53e4O27e//W1J0u7duw/31+sgOaauxh2Px7V3715J0pNPPqlrr71Wv/nNbzR+/HgVFxfra1/7WmpuUCAQ0LJly3TyySfrBz/4gU488URVVlbqRz/60T4hCEDmMccGQEaVlJSourp6n/3bt2+XJPXp0yd13Ntvv73PcZ0nDyePnzNnTmoeT2cjRoxIe8ySuhy3w+FQUVFRajz333+/7r//fm3evFkLFy7Ubbfdpp07d+rFF1+UJI0aNUpPPPGETNPU+++/r/nz5+vOO+9UTk6ObrvttrTGCuDAqNgAyKhzzz1Xa9eu1cqVKzvsf/TRR2UYhiZNmiRJmjRpkhobG7Vw4cIOxy1YsKDD8xEjRmjYsGF67733NG7cuP1u+fn5aY15xIgR6tevnxYsWCDTNFP7m5ub9fTTT6eulOpswIABuuGGG3T++efv8/tKkmEYGjNmjO677z4VFhbu9xgAmUXFBkBGffe739Wjjz6qiy66SHfeeacGDhyoRYsW6aGHHtK3vvUtDR8+XJL0ta99Tffdd5++9rWv6e6779awYcP017/+VS+99NI+5/z1r3+tCy+8UFOmTNGsWbPUr18/7dmzRx999JFWrlypp556Kq0xOxwOzZs3TzNnztS0adP0zW9+U6FQSD/96U9VV1enn/zkJ5Kk+vp6TZo0STNmzNDxxx+v/Px8vfPOO3rxxRdT1aQXXnhBDz30kC699FIdd9xxMk1TzzzzjOrq6nT++eenNU4AB0ewAZBRpaWlevPNNzVnzhzNmTNHDQ0NOu644zRv3jzNnj07dZzf79crr7yi//zP/9Rtt90mwzA0efJkPfHEE5owYUKHc06aNElvv/227r77bt10003au3evSkpKNHLkSF155ZUZGfeMGTOUm5uruXPn6qqrrpLT6dSZZ56ppUuXpsbj8/l0xhln6LHHHtOmTZsUiUQ0YMAAff/739ett94qSRo2bJgKCws1b948bd++XR6PRyNGjND8+fN17bXXZmSsALpmmO3rrgAAAEcx5tgAAIBeg2ADAAB6DYINAADoNQg2AACg1yDYAACAXoNgAwAAeo1ev45NPB7X9u3blZ+fL8Mw7B4OAAA4BKZpqrGxUZWVlR1uTnswvT7YbN++XVVVVXYPAwAAdMOWLVvUv3//Qz6+1web5D1ktmzZooKCAptHAwAADkVDQ4OqqqoO+15wvT7YJNtPBQUFBBsAAI4yhzuNhMnDAACg1yDYAACAXoNgAwAAeo1eP8fmUMViMUUiEbuHcdTyeDyHdTkeAABHwjEfbEzTVE1Njerq6uweylHN4XBo8ODB8ng8dg8FAHAMO+aDTTLUlJWVye/3s4hfNyQXQayurtaAAQN4DwEAtjmmg00sFkuFmpKSEruHc1QrLS3V9u3bFY1G5Xa77R4OAOAYdUxPikjOqfH7/TaP5OiXbEHFYjGbRwIAOJYd08EmidZJ+ngPAQDZgGADAAB6DYINNGjQIN1///12DwMAgLQd05OHj2YTJ07UySefnJFA8s477yg3NzcDowIAwF62VmwefvhhjR49OnWDyvHjx+tvf/tb6vuhUEg33nij+vTpo9zcXF188cXaunWrjSNuE4vHFY7GFI3F7R7KfpmmqWg0ekjHlpaWMoEaANAr2Bps+vfvr5/85Cd699139e677+qcc87RJZdcog8//FCSdNNNN+nZZ5/VE088oTfeeENNTU2aNm1aVlx5U9sU1sc1jappCPb4z541a5aWLVumX/ziFzIMQ4ZhaP78+TIMQy+99JLGjRsnr9er119/XZ9++qkuueQSlZeXKy8vT6eddpqWLFnS4XydW1GGYeg3v/mNLrvsMvn9fg0bNkwLFy7s6V8TAIDDZmuwmT59uqZOnarhw4dr+PDhuvvuu5WXl6fly5ervr5ev/3tb3XvvffqvPPO09ixY/WHP/xBa9as2eeDOZNM01RLOHrQrTUSUzASU0sodkjHH2wzTfOQx/iLX/xC48eP1ze+8Q1VV1erurpaVVVVkqRbb71Vc+fO1UcffaTRo0erqalJU6dO1ZIlS7Rq1SpNmTJF06dP1+bNmw/4M+644w5deeWVev/99zV16lTNnDlTe/bsSeu9BQDgSMuaOTaxWExPPfWUmpubNX78eK1YsUKRSESTJ09OHVNZWamTTjpJb775pqZMmXJExtEaiWnkf710RM59IGvvnCK/59D+OAKBgDwej/x+vyoqKiRJH3/8sSTpzjvv1Pnnn586tqSkRGPGjEk9v+uuu/Tss89q4cKFuuGGG7r8GbNmzdJXvvIVSdI999yjBx54QG+//bYuuOCCw/7dAADoKbYHmzVr1mj8+PEKBoPKy8vTs88+q5EjR2r16tXyeDwqKirqcHx5eblqamq6PF8oFFIoFEo9b2hoOGJjz0bjxo3r8Ly5uVl33HGHXnjhhdTKwK2trQet2IwePTr1dW5urvLz87Vz584jMmYAADLF9mAzYsQIrV69WnV1dXr66ad17bXXatmyZV0eb5rmAReDmzt3ru64445ujyfH7dTaOw9eDdrTHNb2ulble90a2Cf9ibc5bmfa55C0z9VN3/ve9/TSSy/pZz/7mYYOHaqcnBxdccUVCofDBzxP59siGIaheDw7J0oDAJBke7DxeDwaOnSoJKva8M477+gXv/iFrrrqKoXDYe3du7dD1Wbnzp2aMGFCl+ebM2eOZs+enXre0NCQmn9yKAzDOKSWUDASl8/tlM/jPOQWUiZ5PJ5DmkT9+uuva9asWbrsssskSU1NTdq0adMRHh0AAPbIugX6TNNUKBTSqaeeKrfbrcWLF6e+V11drQ8++OCAwcbr9aYuH09uR4LDaBuvHQYNGqR//vOf2rRpk3bv3t1lNWXo0KF65plntHr1ar333nuaMWMGlRcAQK9la7D5wQ9+oNdff12bNm3SmjVr9MMf/lCvvvqqZs6cqUAgoK9//eu6+eab9fLLL2vVqlW65pprNGrUKJ133nl2DluSlGyG2ZRrdMstt8jpdGrkyJEqLS3tcs7Mfffdp6KiIk2YMEHTp0/XlClTdMopp/TwaAEA6Bm2tqJ27Nihr371q6qurlYgENDo0aP14osvpq7que++++RyuXTllVeqtbVV5557rubPny+nMzPzUdKSmOdjU67R8OHD9dZbb3XYN2vWrH2OGzRokF555ZUO+66//voOzzu3pvZXhaqrq+veQAEA6EG2Bpvf/va3B/y+z+fTAw88oAceeKCHRnToDJtbUQAAYF9ZN8fmaJF844g1AABkD4JNdyVbUSQbAACyBsGmm1KTh6nZAACQNQg23dQ2x8becQAAgDYEm24yaEUBAJB1CDbdRCsKAIDsQ7DpJlpRAABkH4JNNxmyd4E+AACwL4JNN7VfoO9oXKRv0KBBuv/++1PPDcPQc8891+XxmzZtkmEYWr16dU8MDwCAbrH97t5HK6Pd12an50ej6urqDndRBwDgaESw6abkVVFSYp7NUZ5sKioq7B4CAABpoxXVTe1yTY+3on7961+rX79+isfjHfZffPHFuvbaa/Xpp5/qkksuUXl5ufLy8nTaaadpyZIlBzxn51bU22+/rbFjx8rn82ncuHFatWrVEfldAADIJIJNZ6YphZsPuhnhZhmRFhmRFpmHcPxBt8MIR1/+8pe1e/duLV26NLVv7969eumllzRz5kw1NTVp6tSpWrJkiVatWqUpU6Zo+vTp2rx58yGdv7m5WdOmTdOIESO0YsUK3X777brlllsO+60EAKCn0YrqLNIi3VN50MMMSaMy+XN/sF3y5B7SocXFxbrgggu0YMECnXvuuZKkp556SsXFxTr33HPldDo1ZsyY1PF33XWXnn32WS1cuFA33HDDQc//+OOPKxaL6Xe/+538fr9OPPFEbd26Vd/61re697sBANBDqNgcpWbOnKmnn35aoVBIkhVGrr76ajmdTjU3N+vWW2/VyJEjVVhYqLy8PH388ceHXLH56KOPNGbMGPn9/tS+8ePHH5HfAwCATKJi05nbb1VPDsHa6gbF4qaGleXJ53am/3MPw/Tp0xWPx7Vo0SKddtppev311/Xzn/9ckvS9731PL730kn72s59p6NChysnJ0RVXXKFwOHxI5z4aL18HAEAi2OzLMA65JSR3TGY8LtOTK6UbbA5TTk6OLr/8cj3++OPasGGDhg8frlNPPVWS9Prrr2vWrFm67LLLJElNTU3atGnTIZ975MiReuyxx9Ta2qqcnBxJ0vLlyzP+OwAAkGm0otKQujLKpgrHzJkztWjR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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\"\"\"\n",
    "Use this for plotting regression mean-squared error\n",
    "Validation split must be enabled during model fit.\n",
    "\"\"\"\n",
    "# Plot model mse over epochs\n",
    "sns.reset_orig()   # Reset seaborn settings to get rid of black background\n",
    "plt.plot(estimator.history['mean_squared_error'])\n",
    "plt.plot(estimator.history['val_mean_squared_error'])\n",
    "plt.title('model MSE')\n",
    "plt.ylabel('mse')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train', 'valid'], loc='upper left')\n",
    "# plt.ylim(0,300)\n",
    "plt.show()\n",
    "\n",
    "# Plot model loss over epochs\n",
    "plt.plot(estimator.history['loss'])\n",
    "plt.plot(estimator.history['val_loss'])\n",
    "plt.title('model loss')\n",
    "plt.ylabel('loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train', 'valid'], loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The most significant improvement occurs in the first 10 or 20 epochs, however the model continues to improve slightly with additional epochs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"Use this for plotting classification accuracy\"\"\"\n",
    "# # Plot model accuracy over epochs\n",
    "# sns.reset_orig()   # Reset seaborn settings to get rid of black background\n",
    "# plt.plot(estimator.history['acc'])\n",
    "# plt.plot(estimator.history['val_acc'])\n",
    "# plt.title('model accuracy')\n",
    "# plt.ylabel('accuracy')\n",
    "# plt.xlabel('epoch')\n",
    "# plt.legend(['train', 'valid'], loc='upper left')\n",
    "# plt.show()\n",
    "\n",
    "# # Plot model loss over epochs\n",
    "# plt.plot(estimator.history['loss'])\n",
    "# plt.plot(estimator.history['val_loss'])\n",
    "# plt.title('model loss')\n",
    "# plt.ylabel('loss')\n",
    "# plt.xlabel('epoch')\n",
    "# plt.legend(['train', 'valid'], loc='upper left')\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0% of target scores did not revert back to their original value.\n"
     ]
    }
   ],
   "source": [
    "# Check for scaling errors\n",
    "errors = len(results.query('y_true != target_score')[['topic', 'target_score', 'y_true']])\n",
    "\n",
    "print('{:.1f}% of target scores did not revert back to their original value.'.format(errors/results.shape[0] * 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "Adding Word2Vec word embeddings to the feature set and applying a neural network model produces superior results compared to traditional machine learning algorithms. \n",
    "\n",
    "Of all the model architectures attempted, a multi-layer perceptron with surprisingly few nodes in the hidden layer returned the highest Kappa score. Additional hidden layers did not improve the model.\n",
    "\n",
    "Automatic scoring can be framed as both a classification or a regression problem. The highest target metrics (mean quadratic weighted kappa) were found using regression analysis.\n",
    "\n",
    "Comparisons to the original Kaggle competition and later attempts are often unfair due to differences in data sets and methods of calculating kappa. The results obtained in this notebook are among the highest, if not the highest currently published."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Outlook\n",
    "\n",
    "Additional optimization is definitely possibly by tweaking hyperparameters and calculating more epochs. Additional features could be extracted and added to the feature set. While this would almost certainly result in higher kappa scores, the additional gain wouldn't outweigh the benefit. Perhaps the biggest obstacle is the limited data. If some day scores for the validation and test data sets are released, it would be worthwhile revisiting the problem set."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:capstone2]",
   "language": "python",
   "name": "conda-env-capstone2-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
